2011-10-05 85 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

相关问题