我正在構建一個只允許通過域名訪問的API(PHP),應該如何檢查JSONP請求源?
有沒有我可以實現的任何安全層? (我不使用鑰匙目前*)只檢查域的安全API(JSONP)
* = 我希望用戶只添加腳本標籤,我不希望他們有插入鑰匙並獲得搞砸了 - 如果你有任何想法爲了做到這一點,並保證它,我會很高興聽到它。
我正在構建一個只允許通過域名訪問的API(PHP),應該如何檢查JSONP請求源?
有沒有我可以實現的任何安全層? (我不使用鑰匙目前*)只檢查域的安全API(JSONP)
* = 我希望用戶只添加腳本標籤,我不希望他們有插入鑰匙並獲得搞砸了 - 如果你有任何想法爲了做到這一點,並保證它,我會很高興聽到它。
的,你會得到最好的是:
接受請求,如果referer
頭部丟失或設置爲包含白名單中的網域的網址。
這會阻止人們有效地在HTTP網站上使用您的API客戶端。
某些(相對較少的)用戶將禁用引用者。他們將能夠在任何使用它的站點上使用API(但由於它們是少數用戶,大多數站點不希望依賴這個API,因爲它只會爲大多數用戶中斷)。
它不會阻止運行HTTPS網站和使用API的用戶 - 但他們的用戶會收到關於混合安全和不安全內容的警告,因此這也是一個沒有吸引力的選項。
這不會阻止用戶訪問您的API服務器端,但您可以通過基於IP的速率限制來解決這個問題。
還有就是,起源可以欺騙......這樣做的沒有安全的方式
感謝您的回覆。所以我會試着總結一下你所說的(如果我錯了,就糾正我):檢查引用者(我可以用document.URL發送url來確保我有一些數據),然後檢查從一個IP過度使用api並阻止他(如果它發生的話)。您還提到https網站會收到通知,我應該如何解決該問題(通知)? – funerr 2012-07-10 14:09:25
如果您編寫JS來發送已加載JS的頁面的URI,那麼它可以由頁面作者修改並進行欺騙。我建議使用瀏覽器設置的引用標頭。 – Quentin 2012-07-10 14:11:14
是的,通過檢查給定時間段內給定URI的請求數來使用速率限制。 – Quentin 2012-07-10 14:11:41