感謝您的閱讀。使用jQuery前端的REST Web服務安全性
我想開發一個安全的Web應用程序,使用jQuery作爲前端,.NET MVC作爲服務器端,其功能用RESTful Web服務表示。在這一點上,我試圖設想我將使用的安全方案,但我想要一些關於最佳實踐的建議(顯然我將使用https/ssl,但當然還有更多)。
我一直都是祕密鑰匙方法的粉絲,所以我試圖弄清楚如何在這種類型的Web應用程序架構中使用它,但我很茫然。基本上,一個祕密密鑰將被生成並放置在服務器以及給予客戶端(因此密鑰絕不會通過線路發送),並且每個客戶端請求必須用此密鑰進行數字「簽名」。這是您通常在Web應用中看到的典型用戶名/密碼/會話ID結構的補充。
我的問題是密鑰在客戶端上的實際存儲。由於jQuery文件只是坐在服務器上的.html文件,因此無法訪問虛擬Web目錄之外的目錄中的密鑰文件。將密鑰文件放在公共網站上並不會帶來太多祕密。 :)
這是我怎麼會喜歡它工作:
- 在一定的時間間隔(5-15分鐘),後端工藝生成私鑰,並把它無論是在後端數據庫以及Web服務器上非公開位置的文件。
- 當客戶端發出請求時,它會從密鑰文件中讀取數據,然後用密鑰對請求進行數字簽名。
- 服務器接收到請求並使用密鑰進行解碼。
但顯然#2是問題,因爲沒有辦法通過JavaScript訪問「祕密」(即非公共)文件。
我是不是太偏執?祕密密鑰方法很好,因爲它具有超出用戶名/密碼的另一級別的安全性(攻擊者需要密鑰和有效的用戶名/密碼),並且如果每5分鐘重新生成一次密鑰,那麼風險將會降低祕密密鑰會泄漏。這也確保了所有請求都來自「經過認證」的客戶端。但我不明白如何使用諸如html/jQuery之類的非編譯代碼。
有沒有人有任何關於REST風格的Web服務安全方法的建議或文章?
謝謝:)
文斯