Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 字符串(&x27;A=0)追加到HTTP GET URL_Php_Mysql_Web - Fatal编程技术网

Php 字符串(&x27;A=0)追加到HTTP GET URL

Php 字符串(&x27;A=0)追加到HTTP GET URL,php,mysql,web,Php,Mysql,Web,我们的一些用户在我们的网站上有一些间歇性错误(PDO例外)。检查日志后,我发现字符串('A=0)被附加到HTTP get。这很奇怪,因为我们肯定没有编写代码,它只发生在不同页面中的某些用户身上,而且也不一致 错误日志如下: [错误]28960#0:*500749 FastCGI在stderr中发送:“PHP消息:处理另一个错误时出错: 异常“PDOException”,消息为“SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与您的MySQL服务器版本对应的

我们的一些用户在我们的网站上有一些间歇性错误(PDO例外)。检查日志后,我发现字符串('A=0)被附加到HTTP get。这很奇怪,因为我们肯定没有编写代码,它只发生在不同页面中的某些用户身上,而且也不一致

错误日志如下: [错误]28960#0:*500749 FastCGI在stderr中发送:“PHP消息:处理另一个错误时出错: 异常“PDOException”,消息为“SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在“A=0”附近使用的正确语法 第4行的限值1'

从上游读取响应头时,客户端:10.202.1.135,服务器:xxxx.com,请求:“GET/index.php/productdetail?pid=8473'A=0 HTTP/1.1”,上游:fastcgi://127.0.0.1:9000,主机:“xxxx.com”

注: /index.php/productdetail?pid=8473是没有“A=0”的正确URL


感谢所有能够提供有关如何/何时附加'A=0'的见解的人。

这不是您的代码。它来自SQL注入探测。更多详细信息可在此处找到:

在过去的一周内,我在不同的页面和不同的IP上看到了150个这样的请求。您可以通过检查UserAgent是否与该帖子中的一个匹配来确认:


Mozilla/5.0(Windows;U;Windows NT 5.1;pt;rv:1.9.1.2)Gecko/20090729 Firefox/3.5.2(.NET CLR 3.5.30729)

在这种情况下,您需要搜索设置相关查询的代码并对其进行调试。根据给定的信息,无法告诉您发生这种情况的原因。唯一可以告诉您的是,您的代码容易受到SQL注入的攻击(在查询中使用它之前,您不会逃逸
pid
)。因为如果您要执行正确的转义,那么简单地将
'a=0
附加到参数不会导致sql语法错误。主要问题是什么导致附加了'a=0。是否有一些服务器设置可供我们研究?顺便说一句,我们正在使用Nginx。即使我们为sql注入转义pid,pid仍然会如果不正确(比如“8473'A”而不是8473),那么页面仍然无法正常工作。而且,很明显,探测成功。仅仅因为页面在无效输入下无法正常工作,并不意味着它容易受到无效输入的攻击。对我们来说,这更像是谁看到错误消息的问题——开发人员或浏览器。