2014-07-07 69 views
1

我目前正在研究一個向REST Web服務發出請求的小型JavaScript庫。由於服務器端需要記錄傳入的請求以測量請求的數量,我想以某種方式保護它。該庫與Google Maps API非常相似。所以我的問題是,現在有沒有辦法更好地保護它,然後只是向庫請求中添加API密鑰?如果可能的話,我怎樣才能確保只有'正確'的客戶使用鑰匙?我想我可以將引薦網址與一組有效的網址進行比較,但這可能是欺騙性的?請記住,不可能使用其他人的身份驗證方法(臉書,谷歌,微博等),因爲它必須在沒有用戶輸入的情況下工作。保護JavaScript API

乾杯, 丹尼爾

+0

是的,引薦網址可以並將被操縱,不應該用於任何與安全有關的內容。 – reto

+0

定義什麼是「安全」的意思。 API是否適用於任何人都可以訪問的公共網站?然後根據定義,沒有什麼可以做的。任何人都可以隨時隨地訪問數據(公共網站),或者你有某種限制。你不能擁有兩個。 – deceze

+0

謝謝。那麼我需要一種方法來識別服務器端的客戶端來測量API請求。它不一定需要「安全」。對不起,如果我混合起來。 –

回答

1

一個體面的REST風格的方法是需要Authorization頭由客戶提供,配套一些方案,你的服務器將接受(見Basic Access authentication爲例)。鑑於您只希望驗證您的客戶是提出請求的客戶,您可能不需要太複雜的授權機制。

+2

我看不出如何欺騙。如果我把我的庫源代碼中的用戶名:密碼,每個人都能夠看到/僞造它,或者不是? –

+1

因此,您正在創建一個與您的私人服務器通信的公共JavaScript庫,並且您不希望除使用您的庫的客戶提出請求之外的客戶?正如@ deceze的評論中提到的,如果這是一個可公開訪問的服務器,那麼您就無法阻止人們向其發送請求,那麼您是不是想要測量包括這些請求在內的請求的數量?正如你所提到的檢查引薦,這讓我認爲只有一個或幾個客戶,你希望收到請求?對不起,我還沒有完全理解這個問題。 –