2012-04-02 125 views
0

我需要獲取用戶向我的服務器發送ajax請求的完整域,並且它應該有點安全。 ThePhp,從ajax請求獲取引用者

$_SERVER['HTTP_REFERER'] 

返回空白。 我應該使用什麼功能? 在此先感謝。

+0

也許空白不是黑色? – 2012-04-02 13:15:21

+1

@AlexAmiryan,你知道這個解決方案嗎? – funerr 2012-04-02 13:16:07

回答

4

某些瀏覽器不會將引用數據與XHR請求一起發送。引用者標題是可選的,並且可以僞造。所以:你不能

Same Origin Policy可能會爲您提供所需的全部保護(儘管您尚未明確您的用例,因此很難說)。

+0

ajax請求確實有效(我通過php配置了它),但它沒有獲得遠程域名。 – funerr 2012-04-02 13:17:12

+0

$ _SERVER [「HTTP_REFERER」]不是您應該信任的值。該值可以設置爲用戶喜歡的任何值。另外用戶可以手動禁用引用者。嘗試重寫腳本以在沒有引用者的情況下工作。但是,不要依賴引薦者的價值。 – TRD 2012-04-02 14:03:15

+0

@TRD那我該用什麼? – funerr 2012-04-03 22:55:18

1

您的目標似乎是保護您的服務器API免受未經授權/過度請求的攻擊/垃圾郵件。在這種情況下,您希望檢查的所有內容都可能被欺騙,您可能需要嘗試使用工作證明算法。

看一看http://hashcash.org

通過強制客戶端「支付」(與計算週期)發送您的數據進行處理,你可以從你造成一個問題過濾掉一般的機器人。