2009-06-21 99 views
4

我很想知道基於URL的api密鑰限制是如何工作的,例如Google用來保護其Google地圖服務的限制。基於URL的API密鑰限制:驗證如何工作?

從我從這篇文章「Restricting Access to Ajax Services」中瞭解到的情況,有兩個部分:首先服務爲給定域創建特定密鑰,使用單向散列函數;其次服務根據Referer頭部驗證密鑰。

雖然這篇文章非常具有說明性,但我仍然有一個問題,試圖理解驗證方法的安全性。我的意思是,如果關鍵字只針對引用者進行檢查,是不是很容易僞造?我認爲hosts文件中的一個簡單的「127.0.0.1 www.mydomain.com」將足以欺騙驗證,並認爲引用者是www.mydomain.com。

我可能誤解了一些事情,我們將不勝感激。

+0

看起來你的鏈接不好。如果你有機會糾正它,我會高興地看看! – 2009-06-21 14:24:39

回答

1

您引用的文章的「限制」部分明確提到欺騙引用者的可能性。

更改主機文件可能確實足以僞造您的引薦網址,但僅限於您從自己的計算機訪問網站。這意味着只有在本地進行測試時纔可以濫用許可證。這不是很有趣的濫用。

爲了發佈自己的應用,你需要在欺騙大家瀏覽器的引用,除非你正在使用的API從本地運行可執行文件,在這種情況下,你在所有的完全控制可能是標題。

+0

我現在明白了。但是,我認爲,如果使用API​​密鑰將數據寫入服務,就像Google之類的分析跟蹤器一樣,有人可以在自己的計算機上使用修改後的標頭將虛假數據注入到服務中。實際上,我並沒有看到太多的這種僞造,但理論上來說,我認爲這是可能的。 謝謝你的時間,你的答案和修復我的鏈接。 – ivb 2009-06-21 16:33:10