請告訴我,如果我得到一個變量$var
返回:http://foo.com
- 那麼我該如何檢查這個uri是否與$referrer
返回的值相同(假設有一個),或者如果$referrer = http://foo.com/oof/
或更長,我該如何檢查它的第一部分。如何將變量與HTTP_REFERER的第一部分進行比較?
隨着(沒有更好的辦法?):
$referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
基本上我想有一個的if/else情況下,當URI匹配的,當它沒有。 我也想知道如何使它黑客安全,如果你願意,以便它不能被欺騙,當$referrer
是這樣的:http://badsite.com/file.php?param1=http://foo.com
,並在這裏http://foo.com
部分將不被視爲合法的匹配。
非常感謝!
謝謝!請告訴我,'host'部分是否意味着'$ domain'中只有'http:// .... com'的初始實例會被檢查匹配,因此不會被作弊像我在原始問題中提到的那樣? – Alex 2014-09-28 10:04:05
你不能100%確定引用者,因爲有人可以中斷http請求並修改引用者,而你不知道。 – Abkarino 2014-09-28 15:50:24
也許你應該開始一個會話並在其中存儲推薦人。這是用戶無法訪問或知道內容的唯一變量。 – Abkarino 2014-09-28 15:51:29