我喜歡谷歌地圖的API被消耗的方式,使用腳本包括,但我很擔心:如何設計一個允許安全跨域腳本的JavaScript API?
我的API是‘半私’,就是通過互聯網訪問,但應該允許安全傳輸數據和某種認證。數據應該保持私密性,並且一個消費者不應該能夠獲取他人的數據。
如何使用SSL和某種身份驗證來保持數據安全,但仍然可以從純HTML頁面「橫向」訪問而不需要服務器端代理?我需要管理密鑰嗎?如何將密鑰發佈到服務器而不被攔截?我可以使用OpenId(或其他第三方認證)來驗證api用戶,還是必須創建我自己的認證機制?我已經遍佈Google,無法找到一個安全設計和部署API的好指南。
現在我正在使用REST和AJAX來使用它們,但跨域調用是不可能的。任何幫助或指針在正確的方向將不勝感激。
一個小問題 - 當客戶端在javascript中時,您如何期望密鑰或密碼是安全的?所有「半隱私」對任何偷看代碼的人都是透明的。 – naugtur 2010-11-09 12:05:51
他可以生成客戶端證書並使用Flash/HTML5本地存儲將其存儲......然後讓網站通過URL或window.name將參數傳遞給iframe,該iframe將使用安全調用中的證書來獲取任何數據要顯示在iframe中(以避免使用cookie或登錄過程)。 – dlongley 2010-11-09 16:53:06
@naugtur:這就是我發佈這個問題的原因:) – 2010-11-09 17:46:36