我知道HTTP_REFERER作爲安全措施並不安全,但我仍然想知道。如何檢查HTTP_REFERER是否包含字符串,但不完全匹配?
如何檢查HTTP_REFERER的值是否包含www.someexample.com,即使它可能是www.someexample.com/awards/user/145?
我知道HTTP_REFERER作爲安全措施並不安全,但我仍然想知道。如何檢查HTTP_REFERER是否包含字符串,但不完全匹配?
如何檢查HTTP_REFERER的值是否包含www.someexample.com,即使它可能是www.someexample.com/awards/user/145?
if (false !== stripos($_SERVER['HTTP_REFERER'], "www.someexample.com")){
//do stuff
}
如果使用Apache,只需$ _ SERVER [ 'HTTP_REFERER']
if(stripos($_server['HTTP_REFERER'], 'someexample.com') !== FALSE) {
// The link is from someexample.com (might not have "www" in it)
}
注意執行preg_match:這也將匹配http://www.andsomeexample.com
。如果要防止這種情況,使用parse_url
:
if(parse_url($_SERVER['HTTP_REFERER'])['host'] == 'someexample.com'){
// You're good to go...
}
echo parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
提出,不區分大小寫,使其多了幾分可靠。 – ceejayoz
HTTP_REFERER = www.someotherexample.com?param=www.someexample.com =) – Fivell
@ceejayoz:是的,謝謝 – genesis