如何在PHP中从客户端设置自定义$ _SERVER变量

Gru*_*mpy 5 php

根据这篇文章:哪些$ _SERVER变量是安全的?另一个我见过,客户端似乎能够设置自定义的$ _SERVER变量.例如:$ _SERVER ['HTTP_EXAMPLE']

客户端如何将值实际设置为$ _SERVER ['HTTP_EXAMPLE']?

小智 12

如果您可以访问Apache配置文件,则可以使用mod_env进行操作

SetEnv HTTP_EXAMPLE http_example
Run Code Online (Sandbox Code Playgroud)

然后您可以访问该变量

echo $_SERVER["HTTP_EXAMPLE"]; //outputs http_example
Run Code Online (Sandbox Code Playgroud)

  • 我的意思是从客户端,而不是服务器端.无法访问apache配置的客户端. (2认同)

Ast*_*sta 7

如果需要,您可以在脚本中设置变量

$_SERVER['DOCUMENT_ROOT'] = 'test';
echo $_SERVER['DOCUMENT_ROOT'];  // test
Run Code Online (Sandbox Code Playgroud)

那篇文章真正指的是欺骗变量,例如REMOTE_ADDR客户报告的 。

有关更多信息,请查看这篇关于伪造 REMOTE_ADDR 的文章。如何伪造 $_SERVER['REMOTE_ADDR'] 变量?