【发布时间】:2011-10-05 19:24:10
【问题描述】:
- 用户通过浏览器进入富网络应用
- 用户输入登录凭据。凭证被编码和缓存。 (凭据适用于将使用 xhr 与服务器交互的浏览器内 REST 客户端。)
- 用户执行各种任务/更新,每个任务/更新都会发出一个 ajax 请求,传递编码的凭据(通过 https 的基本身份验证)。
- 用户单击一个链接,该链接将他带到另一个资源(整个页面重新加载,而不是较小的 ajax 请求)。
由于整个应用程序使用内部 REST 客户端,每个请求都必须传递凭据。当他第一次访问该站点时,我没有问题提示用户输入这些凭据。问题是存储他的编码用户名/密码哈希的最安全方法是什么?如果这是一个单页网络应用程序,我想这可以安全地缓存在内存中。但是,由于用户有时会移动到其他资源(第 4 步),我希望允许他继续工作而无需再次进行身份验证。这必须涉及在某处缓存他的凭据(在 cookie 或 localStorage 中?)。无论如何,我需要访问他已经提供的凭据,以便客户端可以在每个请求中继续传递它们,即使在整个页面重新加载之后也是如此。
我担心以安全的方式执行此操作。有这方面的最佳做法吗?
【问题讨论】:
标签: web-applications rest webclient basic-authentication