根据这篇文章:Which $_SERVER variables are safe?和我见过的另一篇文章,客户端似乎能够设置自定义$ _SERVER变量。例如:$ _SERVER ['HTTP_EXAMPLE']
客户如何将值实际设置为$ _SERVER ['HTTP_EXAMPLE']?
答案 0 :(得分:11)
如果您有权访问Apache配置文件,则可以使用mod_env
进行操作SetEnv HTTP_EXAMPLE http_example
然后您可以访问该变量
echo $_SERVER["HTTP_EXAMPLE"]; //outputs http_example
答案 1 :(得分:2)
如果需要,您可以在脚本中设置变量
$_SERVER['DOCUMENT_ROOT'] = 'test';
echo $_SERVER['DOCUMENT_ROOT']; // test
其他文章实际上指的是欺骗性变量,例如客户报告的REMOTE_ADDR
。
有关详细信息,请查看有关伪造REMOTE_ADDR的帖子。 How to fake $_SERVER['REMOTE_ADDR'] variable?