Когда мой веб-сервер использует порт 80, странная строка запроса добавляется к любой странице, на которую переходят мои посетители, и нарушает работу некоторых из моих служб. Я изменил nginx на использование порта 81, и он работает нормально, без добавления строки запроса.
Строка запроса выглядит так: http://www.site.com/some/url/script.php?COLLCC=2749699728&
В моем коде нет ничего, что могло бы вызвать это, тем более что это происходит только на порту 80 и независимо от того, какой веб-сервер я использую (Apache, Nginx и т. Д.). Кто-нибудь знает, что может быть причиной этого?
Когда я делаю print_r($_SERVER)
, Я получаю это:
[argv] => Array
(
[0] => COLLCC=2693200777&
)
[argc] => 1
Я использую 64-разрядную версию CentOS 6 с Nginx + PHP-CGI
Это может быть значение липкости, добавленное где-то балансировщиком нагрузки. Его следует добавлять в строку запроса, только если файлы cookie отключены.
Однако тот факт, что он ломает ваш код, должен вас беспокоить. Ваш код должен быть достаточно надежным, чтобы справиться с этой ситуацией. Ему просто нужно игнорировать дополнительные параметры запроса.
Вы можете решить эту проблему, переписав запрос, чтобы удалить параметр. Однако это может скрыть серьезные проблемы с вашим кодом.
Попробуйте получить доступ к веб-серверу с того же хоста, чтобы убедиться, что это проблема восходящего потока. Вы можете использовать текстовый браузер, например lynx
или w3m
, или туннель в использовании ssh
так вы обходите сеть.
Насколько мне известно, параметр COLLCC = xxxxx добавляется в некоторых случаях массовых DDOS-атак на мой веб-сервер со стороны моего хостера.
Это всего лишь защита. Я признаю, что это некрасиво ... Но это необходимо для защиты моего веб-сайта, когда множество ботнетов нацелены на мой сервер.
Надеюсь, я кому-нибудь помогу. И, пожалуйста, извините за мой плохой английский, потому что я француз.
Может быть, правило mod_rewrite указано только для порта 80 ... Проверьте свой httpd.conf и / или любые файлы .htaccess?