我知道HTTP_REFERER作为安全措施并不安全,但我仍然想知道。
如何检查HTTP_REFERER的值是否包含www.someexample.com,即使它可能是www.someexample.com/awards/user/145 ??
答案 0 :(得分:7)
if (false !== stripos($_SERVER['HTTP_REFERER'], "www.someexample.com")){
//do stuff
}
答案 1 :(得分:2)
if( stripos($_server['HTTP_REFERER'], 'someexample.com') !== FALSE ) {
// The link is from someexample.com (might not have "www" in it)
}
注意:这也符合http://www.andsomeexample.com
。如果您想阻止这种情况,请使用parse_url
:
if( parse_url($_SERVER['HTTP_REFERER'])['host'] == 'someexample.com'){
// You're good to go...
}
答案 2 :(得分:0)
如果使用Apache,只需在$ _SERVER ['HTTP_REFERER']上执行preg_match
答案 3 :(得分:0)
echo parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);