Добрый день, коллеги. Столкнулся со странной проблемой; похоже, я единственный, у кого она возникла. При наборе в браузере строки запроса http://имя_хоста/?-1 запрос падает с 500-й ошибкой. В error.log сервера пишется что-то типа "недопустимый параметр запуска php-cgi.exe" То есть явно этот -1 воспринимается как ключ запуска интерпретатора (у меня от стоит как cgi). Запросы вида ?--1 или ?abcd обрабатываются нормально; более того, что смешно, запросы вида ?-i или ?-w (есть такие ключи при запуске php) воспринимаются нормально и успешно передаются в $_SERVER['QUERY_STRING'], а запросы вида ?-h (хотя такой ключ тоже есть) или ?-1 приводят к 500-й ошибке. Это баг php или я чего-то не понимаю? Облазил пол-Интернета, нигде не встречал даже упоминания об этой проблеме. Более того, при работе под IIS все нормально, а из-под Апача - вылезает вот такая фигня.
интересно http://localhost/?-1 - -1 -это у тебя передаваемая переменная или ее значение просто может быть так работает http://localhost/?переменная=-1
Так. Еще раз. Если передать переменную как http://имя_хоста/?переменная=-1 то, естественно, все нормально. Если же просто попытаться написать http://имя_хоста/?-1 то, по идее, -1 должно через переменную окружения прийти в $_SERVER['QUERY_STRING']. Вместо этого запрос падает с 500-й ошибкой, как описано выше, причем запись в error.log сервера свидетельствует о том, что -1 воспринят как ключ запуска php-cgi.exe.
Так у меня вообще никаких проблем нет. Проблема в том, что если это баг, то хакер может запустить у меня на машине php с произвольным ключом, вот в чем дело!