2011-08-15 39 views
2

我有一個可以使用HTML5離線緩存離線運行的網絡應用程序。我在客戶端存儲了用戶密碼的sha256散列,這允許我在離線時讓用戶在本地登錄,但我不需要在本地存儲實際密碼。離線網絡應用程序需要本地存儲的安全憑證

我想介紹一些功能,如果應用程序變爲在線,那麼應用程序將自動登錄到服務器,而無需用戶重新輸入密碼。這意味着我需要以某種方式將實際的密碼存儲在客戶端上,或者我需要將散列的密碼傳遞給服務器以允許服務器對用戶進行身份驗證。這兩種方法似乎都有缺點:

我不相信我可以在客戶端安全地存儲密碼(JavaScript變量會這樣做,但隨着頁面刷新,那麼var會超出範圍。本地存儲都可以很容易看到。

我已經在本地存儲密碼的SHA256哈希值,但如果我打開了一個方法,在服務器上,讓這個哈希然後驗證用戶我也開放了安全寧可

有人對此有什麼好的想法嗎? (服務器是ASP.NET MVC C#)

回答

0

您可以將散列的密碼存儲在IndexedDB或WebSQL數據庫中,因爲這兩個都很難閱讀 - 儘管Chrome開發人員工具允許您訪問它們,如果你知道如何 - 儘管這些在Internet Explorer中都不受支持。但是,如果你的應用程序正在離線運行,那並不重要;)

相關問題