当我在我的页面上使用acunetix时,我得到一个:盲SQL / XPath注入
头: GET /file.php?id=2'+and+31337-31337=0 + - +& page = 2
响应:
这是我的PHP代码:
$id = (int) htmlentities($_GET['id']);
$fileid = mysql_real_escape_string($id);
查询:
SELECT * FROM `files` WHERE `id` = '".$fileid."'
我在做错了什么?有人可以用这个擦除我的数据库吗?
即时通讯也在某些查询中获得相同的消息,这些查询几乎等于那个但是也有限制0,1
我正在使用paginator(我修复了一些注入,在那个脚本中的位置)但是示例我给了它不使用它
答案 0 :(得分:2)
在int上强制转换id应该已经防止了SQL注入攻击的可能性(据我所知)。
$id = (int) $_GET["id"];
$Query = "SELECT * FROM files WHERE id = $id;";
file.php?id = abcabc会导致$ id = 0,所以在最坏的情况下你找不到任何匹配这个id的记录,但$ id永远不会包含任何字符串(特别是不是SQL),因为这个整数铸造。
我希望这是你想知道的。
答案 1 :(得分:2)
我相信Acunetix确实是错误的,似乎根本不存在任何SQL注入漏洞。