比方說,我有一個網站有很多關於我們產品的信息。我希望我們的一些客戶(包括我們)能夠通過各種方法查找我們的產品,其中包括:安全API的最佳實踐?
1)從AJAX調用中提取數據,返回數據以酷,JavaScripty方式運行 2)創建使用該數據的iPhone應用程序; 3)讓其他Web應用程序使用該數據來實現自己的目的。
通常,我只是創建一個API並完成它。然而,這些數據實際上是溫和保密的 - 也就是說我們不希望我們的競爭對手能夠在每天早上查看我們所有的產品,然後自動設定價格以削弱我們的價值。而且我們也希望能夠看看誰可能會濫用這個系統,所以如果有人每天對我們的API進行一千萬次複雜的調用並使我們的服務器陷入困境,我們可以將它們關閉。
我的下一個合乎邏輯的步驟是創建一個開發人員密鑰來限制訪問 - 這對於web應用來說可以正常工作,但對於任何AJAX調用來說都不是那麼好。 (正如我所看到的,他們需要提供JavaScript中的密鑰,這種密碼是純文本且容易看到的,因此實際上根本沒有安全性,特別是如果我們在我們的網站上使用我們自己的開發人員密鑰以便進行這些AJAX調用。)
所以我的問題是:在環視Oauth和OpenID一段時間之後,我不確定是否有解決方案可以處理上述所有三個問題。對於開發者的密鑰是否有某種規範的「最佳實踐」,或者Oauth和OpenID可以以某種我尚未討論的方式輕鬆處理AJAX調用,或者我完全錯過了某些東西?
但是,如何保護這個API代理服務器以防止攻擊者濫用它? – Constantin 2010-09-11 19:19:06