PHP-盲SQL注入
作者:互联网
当我在页面上使用acunetix时,我得到了:盲SQL / XPath注入
标头:
GET /file.php?id=2’和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
我正在使用分页器(我修复了该脚本中的某些注入),但是我给出的示例未使用它
解决方法:
据我所知,将id强制转换为int应该已经可以防止任何SQL注入攻击的机会.
$id = (int) $_GET["id"];
$Query = "SELECT * FROM files WHERE id = $id;";
file.php?id = abcabc将导致$id = 0,因此在最坏的情况下,您将找不到与该id匹配的任何记录,但是由于此整数转换,$id将永远不会包含任何字符串(尤其是SQL).
我希望这就是您想知道的.
标签:sql-injection,php 来源: https://codeday.me/bug/20191106/2001998.html