2012-05-10 72 views
4

我正在考慮Google靜態地圖API,它將您限制爲1000張靜態地圖,如果您註冊了一個帳戶,則會更多。當客戶端上的所有內容都是公開的時,他們如何跟蹤賬戶等?瀏覽器內客戶端API的身份驗證?

對於大多數服務器到服務器API,我給了一個access_token/key/etc。我可以傳遞給服務來證明我確實是我,但在客戶端上有任何這樣的access_token/key /等。會立即成爲公衆的知識。

一般來說,客戶端庫(FB SDK,Stripe,Google等)使用哪些策略來執行身份驗證,以及他們如何解決客戶端上的所有內容都是公開的事實?

+0

使用Google靜態地圖,仍需要從Google服務器請求地圖圖片,因此當時可以檢測到使用情況;他們可能會使用客戶端發送的HTTP referer信息將每個請求分配給一個帳戶。你究竟想要完成什麼? – eggyal

+0

我想我的問題是:谷歌如何知道它實際上是我的網站上要求圖像的頁面?什麼阻止某人從我的一個頁面複製URL,更改參數並在整個站點上使用它,在過程中使用配額? –

+0

用戶的瀏覽器在Google的請求信息中包含引用頁面的地址...而用戶自己可以操縱該信息來誤報其他人的網站(爲了什麼目的?),但這不是另一個網站的內容能夠以你描述的方式去做。 – eggyal

回答

1

您可以將您的API密鑰配置爲白名單by host,它告訴Google地圖只允許從發送與您的白名單相匹配的引薦來源的網站使用API​​密鑰。

如果其他網站使用您的API密鑰,他們會在負載收到此錯誤信息:

此網站需要不同的谷歌地圖API密鑰。新密鑰可以在http://code.google.com/apis/maps/documentation/javascript/v2/introduction.html#Obtaining_Key生成。

您可以通過使用FireFox中RefControl extension驗證這個自己:

這樣做是因爲:

  • 幾乎所有的Web瀏覽器發送一個引用(i.e., the URI of the resource which links to it)作爲請求的一部分。
  • 對於有人竊取您的API密鑰(因爲如您所說,它是一個公開可用的字符串),他們需要告訴所有的用戶重寫他們的引用來匹配他們偷取它的網站(這顯然是不實際的)。

請注意,Google似乎允許不包含引薦來源的請求 - 我想配置爲排除此信息的瀏覽器數量很少,因此不值得關注。

相關問題