我使用$_SERVER['HTTP_HOST']
检查我在正确域上运行的脚本,并在非法域上运行时发送电子邮件。问题是,有时我收到错误的警报,脚本在不正确的域上运行。这是一个虚假警报,$_SERVER['HTTP_HOST']
为大写。
首先,为什么会这样?
第二,检查$_SERVER['HTTP_HOST']
是否安全,或者有更好的原因吗?
注意:我没有在代码中将值转换为小写。
答案 0 :(得分:1)
$ _ SERVER ['HTTP_HOST']是访问脚本的主机名。所以,如果有人去http://WWW.EXAMPLE.COM/,它将是大写的。
检查是安全的,首先使用strtolower()将其转换为小写。
编辑:我说检查是安全的,但有一点需要注意:使用HTTP / 1.0的用户代理不会提供Host:标头,因此将取消设置$ _SERVER ['HTTP_HOST']。这种情况不太可能发生,但如果你想要防范它,请确保你为这种可能性编码。