使用端口80的Web服务器添加奇怪的查询string

当我的Web服务器使用端口80时,一个奇怪的查询string被追加到我的访问者去的任何页面,并打破了我的一些服务。 我改变nginx使用端口81,它工作正常,没有附加的查询string。

查询string如下所示: http : //www.site.com/some/url/script.php?COLLCC=2749699728&

在我的代码中没有什么会导致这种情况发生,特别是因为它只发生在端口80上,而不pipe我使用的是什么Web服务器(Apache,Nginx等)。 有没有人有任何想法可能导致这个?

当我做print_r($_SERVER) ,我得到这个:

 [argv] => Array ( [0] => COLLCC=2693200777& ) [argc] => 1 

我正在使用Nginx + PHP-CGI的CentOS 6 64位

它可能是一个负载均衡器添加的粘性值。 只有在cookies被禁用的情况下,才能将其添加到查询string中。

但是,它破坏你的代码的事实应该让你担心。 你的代码应该足够强大来处理这种情况。 它只需要忽略额外的查询参数。

您可能可以通过查询重写来解决这个问题,以删除参数。 但是,这可能会掩盖代码中的重大问题。

尝试从同一个主机访问Web服务器,看看是否是上游问题。 您可以使用像lynxw3m这样的文本浏览器,或者使用ssh隧道,这样可以绕过networking。

据我所知,我的主机在我的networking服务器上发生了一些大规模的DDOS攻击,增加了参数COLLCC = xxxxx。

这只是一种保护。 我承认这是丑陋的…但是,当很多僵尸networking瞄准我的服务器时,需要保护我的网站。

我希望我会帮助别人。 请原谅我英文不好,因为我是法国人。

可能是只为端口80指定的mod_rewrite规则…检查你的httpd.conf和/或任何.htaccess文件?