我有一个有点奇怪的问题。我的页面包含一个 html 链接,该链接刷新页面并调用 PHP 变量。此变量将日期字符串附加到 url 字符串,该字符串被输入到 MySQL 查询中,该查询会抓取与该日期匹配的记录。我认为这会导致注入,因为它有时会从数据库中删除用户!
我知道在超链接中使用“#”可能会出现安全问题,但我想知道发生了什么。另外,这会对不同的浏览器产生不同的影响,因为它如何使用 javascript。用户被删除似乎只发生在某些人的计算机上。
PHP 代码计算三天后的时间戳,然后将其转换为 SQL 格式:
$ts_threeDays = mktime(1,0,0,date('m'), date('d')+3-date('w'), date('y'));
$threeDaysAhead = date('y-m-d', $ts_second_day);
然后,该脚本会侦听页面上的超链接传递的 url 字符串中的“day”变量:
$date = mysql_real_escape_string($_GET['day']);
JavaScript 和超链接是:
<a href='#' onClick="document.location.href='planner.php?day=<?php echo $threeDaysAhead; ?>'"> 3 Days Later</a>
MySQL 查询更大,但它从用户操作获取的唯一输入是上面的日期字符串。查询基本上如下所示(使用另一个 select 语句访问用户表):
SELECT planner.details FROM planner
WHERE planner.date = '$date' AND users.`user_id` = '$id' // Logged in Id superglobal
如果有人可以帮助我并解释我的问题,我将不胜感激。
非常感谢