Имена заголовков с символами подчеркивания игнорируются в 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

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