XAMPP正在删除带下划线的HTTP标头


XAMPP is removing HTTP headers with underscores

我正在尝试运行一个PHP应用程序,该应用程序依赖于通过HTTP标头提供附加信息的特定浏览器。具体来说,它是EVE Online ingame浏览器,但我的问题在于XAMPP(特别是XAMPP USB Lite 1.8.0)处理这些标题的方式。

我观察到,当我在Windows上使用XAMPP时,我需要的特定标头(HTTP_EVE_TRUSTED)在$_SERVER中不可用,但如果我在Debian上使用Apache安装,它就会存在。

我使用了一个简单的脚本来输出标题:

<?php 
print_r($_SERVER);
?>

并且当脚本托管在XAMPP上时,只有这一个标头丢失。我怀疑XAMPP有一些奇怪的默认配置,它去掉了某些标头,也许是一个安全功能,但我找不到任何关于它的信息。

根据Nacerridine的建议,我在Firefox中使用了Tamper Data来重现这个问题,我发现只有包含下划线的标题才会被删除。

是什么原因导致此标头在XAMPP上不可用,但在其他服务器上不可用?我该怎么解决这个问题?

我没有找到从$_SERVER数组中删除标头的确切原因,但您仍然可以使用apache_request_headers 访问相同的信息

$requestHeaders = apache_request_headers();
if ($requestHeaders){
    echo $requestHeaders['EVE_TRUSTED'];
}

我遇到了同样的问题,我使用cUrl传递自定义标头变量,但当我打印$_SERVER变量时,我看不到自定义标头变量。。

但当我打印

apache_request_headers()时,
自定义变量可用。

如果您已重新配置服务器以完成此操作,请告诉我。我使用的是examplep 1.8.0