在 php 5.5.1 / apache 2.4.6 中忽略带下划线的标头名称

2022-08-31 00:56:41

升级到 php 5.5.1 和 apache 2.4.6 后,检查某些标头现在已损坏(特别是检查 )。HTTP_X_REQUESTED_WITH

通过进一步的测试,我注意到任何包含下划线的自定义标头都被忽略了(我的意思是它不会出现在PHP的数组中)。因此,如果我添加一个名为 的标头,它将变为 ,但是如果我尝试添加一个标头,它在 .$_SERVERmy-header$_SERVER['HTTP_MY_HEADER']my_header$_SERVER


答案 1

这是 apache 2.4 中记录的功能。查看 httpd.apache.org/docs/trunk/new_features_2_4.html

标头到环境变量的转换比以前更严格,以通过标头注入来缓解一些可能的跨站点脚本攻击。包含无效字符(包括下划线)的标头现在以静默方式删除。


答案 2

推荐