盲SQL注入

时间:2009-12-25 00:48:23

标签: php sql-injection

当我在我的页面上使用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(我修复了一些注入,在那个脚本中的位置)但是示例我给了它不使用它

2 个答案:

答案 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注入漏洞。