Имена заголовков с подчеркиванием игнорируются в php 5.5.1 / apache 2.4.6

после обновления до php 5.5.1 и apache 2.4.6 проверка определенных заголовков теперь нарушена (в частности, проверка HTTP_X_REQUESTED_WITH).

через дальнейшее тестирование я заметил, что любой пользовательский заголовок, содержащий подчеркивание, игнорируется (под этим я подразумеваю, что он не отображается в PHP $_SERVER массив). Поэтому, если я добавлю заголовок с именем my-header, он становится доступным как $_SERVER['HTTP_MY_HEADER'], но если я попытаюсь добавить заголовок my_header, он недоступен в $_SERVER.

1 ответов


Это документированная функция в apache 2.4. См.httpd.apache.org/docs/trunk/new_features_2_4.html

перевод заголовков в переменные среды является более строгим, чем прежде чем смягчать некоторые возможные атаки межсайтовых сценариев через инъекция заголовка. Заголовки, содержащие недопустимые символы (включая подчеркивания) теперь молча удаляются.