如何检查HTTP_REFERER是否包含字符串,但不完全匹配?

时间:2011-09-08 19:06:48

标签: php

我知道HTTP_REFERER作为安全措施并不安全,但我仍然想知道。

如何检查HTTP_REFERER的值是否包含www.someexample.com,即使它可能是www.someexample.com/awards/user/145 ??

4 个答案:

答案 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);