2011-12-28 47 views
2

假設我已經順利創建了我的REST服務,並且返回了json結果。保護我的REST服務,我將在客戶端使用API​​key

我還爲我的用戶實現了API密鑰,以便爲我的服務進行通信。

然後公司A開始使用我的服務,我給了他們一個API密鑰。

例如,讓我們假設我的服務網址如下:

https://api.myservice.com/data?apikey= {key_comes_here}

主要問題是,我有我自己的網站,還需要打電話給我自己同其他web服務。如果我在調用自己的REST服務時從我的網站傳遞API密鑰,會阻止某人使用例如Firebug,請查看我在我的Web應用程序中使用的API密鑰並使用相同的API密鑰?

回答

1

Google在例如。 Google地圖將API鏈接到一個網址。因此,只能在請求密鑰時指定的URL中使用應用程序中提供的密鑰。這在Web應用程序中尤其有用,您可以在服務器上獲取引用URL。

+0

不能引用推薦人嗎? http://en.wikipedia.org/wiki/Referrer_spoofing – djna 2011-12-28 08:04:08

+0

這聽起來很不錯,但是如果我需要從移動設備公開訪問我的Web服務呢? – 2011-12-28 08:04:20

+0

@djna引用者當然可以被欺騙,但是當您公開一個公共API以在網站上使用時,用戶將通過他們的標準webbrowser訪問該API。如果普通用戶必須欺騙引薦者,則該網站將不適合大多數用戶。如果用戶可以直接訪問該API,即使該站點受HTTPS保護,他們也可以始終看到您的API密鑰。因此,如果您隱藏了密鑰,我認爲您應該從後端系統訪問該服務。如果你想保護來自網絡嗅探器的後端流量,那麼你可以使用HTTPS。 – 2011-12-30 12:31:39