PHP盲SQL注入;x-for";标题

PHP盲SQL注入;x-for";标题,php,sql,sql-injection,Php,Sql,Sql Injection,今天我用acunetix检查了我的脚本,在我的一个文件中发现了一个“盲SQL注入” Accunetix消息: 攻击细节 HTTP头输入x-forwarded-for设置为1'且睡眠(2)=' 如何修复此漏洞: 脚本应该从用户输入中过滤元字符。 有关修复此漏洞的详细信息,请查看详细信息 我已经用mysql\u real\u escape\u string()func转义了所有输入,但仍然存在错误 我尝试使用以下代码筛选文件中的此标头: if(isset($_SERVER['HTTP_X_FORWA

今天我用acunetix检查了我的脚本,在我的一个文件中发现了一个“盲SQL注入”

Accunetix消息:

攻击细节

HTTP头输入x-forwarded-for设置为1'且睡眠(2)='

如何修复此漏洞:

脚本应该从用户输入中过滤元字符。 有关修复此漏洞的详细信息,请查看详细信息

我已经用mysql\u real\u escape\u string()func转义了所有输入,但仍然存在错误

我尝试使用以下代码筛选文件中的此标头:

if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
    mysql_real_escape_string(addslashes(($_SERVER['HTTP_X_FORWARDED_FOR'])));

但是不起作用。请帮忙

最好使用PDO准备的语句来阻止SQL注入,而不是尝试创建自己的“脚本”,仅仅转义字符不足以阻止SQL注入


请在此处查看PDO准备的声明:

很可能您的应用程序使用了某种有缺陷的函数“来确定访问者的IP地址。”

撇开为使用
HTTP\u X\u FORWARDED\u进行此操作是错误的这一事实不谈,这很可能解释了为什么您笨拙的转义不起作用

系统似乎在转义之前在某个变量中获取了一个IP地址。然后,当您转义无害的XFF时,这个变量进入查询

下面是真正的解释,为什么你应该使用预先准备好的语句:因为它们的格式完全正确,正好在它应该在的地方。不会因为过早转义而出错。

可能重复