什么是缓存浏览器内ajax客户端凭据的安全方法?

时间:2011-10-05 19:24:11

标签: web-applications rest webclient basic-authentication

  1. 用户通过浏览器输入富Web应用
  2. 用户输入登录凭据。凭据已编码和缓存。 (凭据用于浏览器内的REST客户端,它将使用xhr与服务器进行交互。)
  3. 用户执行各种任务/更新,每个任务/更新都会传递ajax请求,并传递编码凭据(通过https进行基本身份验证)。
  4. 用户点击链接将他带到另一个资源(发生整页重新加载而不是更小的ajax请求)。
  5. 由于整个应用程序使用内部REST客户端,因此每个请求都必须传递凭据。我第一次访问该站点时,提示用户输入这些凭据没有问题。问题是存储编码的用户名/密码哈希最安全的方法是什么?如果这是一个单页的Web应用程序,我想这可以安全地缓存在内存中。但是,由于用户有时会转移到其他资源(步骤4),我想让他继续工作而无需再次进行身份验证。这必须涉及到某处(在cookie或localStorage中)缓存他的凭据。无论如何,我需要访问他已经提供的凭据,以便客户端可以在每次请求后继续传递它们,即使在整页重新加载后也是如此。

    我担心以安全的方式这样做。对此有最佳实践吗?

1 个答案:

答案 0 :(得分:2)

我认为LocalStorage或cookies都是存储凭据的好地方......个人偏好是LocalStorage。我使用几个基于OAuth的Web应用程序执行此操作。

您可以选择加密/解密进出最终选择的信息:

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

另外,您可能希望查看OAuth,因为规范中为您的确切用例定义了工作流。