可以将PHP变量$ _ SERVER [“SERVER_NAME”]伪造,伪造? 我打算使用作为表单提交安全措施。 我会检查,以确保变量是我的网站的域名(www.example.com)。 我知道HTTP_REFERRER可以伪造的,但我不知道这一点。
谢谢!
可以将PHP变量$ _ SERVER [“SERVER_NAME”]伪造,伪造? 我打算使用作为表单提交安全措施。 我会检查,以确保变量是我的网站的域名(www.example.com)。 我知道HTTP_REFERRER可以伪造的,但我不知道这一点。
谢谢!
实际上$ _ SERVER [“SERVER_NAME”]可以通过什么客户端浏览器发送过来的影响...查看http://shiflett.org/blog/2006/mar/server-name-versus-http-host通过调查为上问题。
访问者不能正常伪造出来。 但我怀疑你会想强制某个SERVER_NAME所以他们只能通过特定的域使用许可的脚本。 在这种情况下,答案是肯定的, 这个变量绝对可以伪造 。
原因很简单,服务器设置此值。 在大多数情况下,你必须运行PHP作为Apache模块,但有时你有其他的Apache模块,有时你已经PHP与NGINX或IIS CGI模式下运行,有时你甚至有运行PHP的CLI分叉的子进程通过自定义 - 内置服务器部署在云中。 这些服务器将负责制定该变量。
另外,总是有手动分配。
$_SERVER['SERVER_NAME'] = ... // this can go above all your scripts
它不能被伪造,PerSay公司,但它总是会返回您的网站名称。 如果你正在运行多个站点关闭相同的脚本,例如,请根据提供的主机名不同的数据库是非常有用的。
在PHP文件说:
'SERVER_NAME'
The name of the server host under which the current script is executing. If the script is running on a virtual host, this will be the value defined for that virtual host.