2011-10-05 29 views
1
  1. 用戶通過瀏覽器輸入富Web應用程序
  2. 用戶輸入登錄憑證。憑證被編碼和緩存。 (這些憑證是用於瀏覽器內的REST客戶端,它將使用xhr與服務器進行交互。)
  3. 用戶執行各種任務/更新,每個任務/更新都會使ajax請求傳遞編碼憑證(通過https進行基本身份驗證) 。
  4. 用戶點擊一個鏈接,將他帶到另一個資源(發生整頁重載而不是較小的ajax請求)。

由於整個應用程序使用內部REST客戶端,因此每個請求都必須傳遞證書。當他第一次訪問該網站時,我沒有任何問題提示用戶輸入這些憑據。問題是什麼是最安全的方式來存儲他編碼的用戶名/密碼哈希?如果這是一個單頁的Web應用程序,我想這可以安全地緩存在內存中。但是,由於用戶有時會轉移到其他資源(第4步),我希望允許他繼續工作而不必再次進行身份驗證。這必須涉及將他的憑據緩存到某處(在cookie或localStorage中?)。無論如何,我需要訪問他已經提供的憑據,以便客戶端可以在每次請求時繼續傳遞它們,即使在完整頁面重新加載後也是如此。什麼是緩存瀏覽器內Ajax客戶端憑據的安全方式?

我很關心以安全的方式做到這一點。是否有最佳做法?

回答

2

我認爲LocalStorage或cookies將是一個很好的地方來存儲您的憑證...個人偏好將是LocalStorage。我使用一對基於OAuth的Web應用程序來完成此操作。

你可以選擇加密/不管你最終選擇解密信息出入:

https://stackoverflow.com/questions/2299434/bcrypt-implementation-in-javascript

順便說一句,你可能要考慮的OAuth因爲有定義的工作流在你的確切用例的規範中。

+0

謝謝布倫特。 :) – Mario

相關問題