由于整个应用程序使用内部REST客户端,因此每个请求都必须传递凭据。我第一次访问该站点时,提示用户输入这些凭据没有问题。问题是存储编码的用户名/密码哈希最安全的方法是什么?如果这是一个单页的Web应用程序,我想这可以安全地缓存在内存中。但是,由于用户有时会转移到其他资源(步骤4),我想让他继续工作而无需再次进行身份验证。这必须涉及到某处(在cookie或localStorage中)缓存他的凭据。无论如何,我需要访问他已经提供的凭据,以便客户端可以在每次请求后继续传递它们,即使在整页重新加载后也是如此。
我担心以安全的方式这样做。对此有最佳实践吗?
答案 0 :(得分:2)
我认为LocalStorage或cookies都是存储凭据的好地方......个人偏好是LocalStorage。我使用几个基于OAuth的Web应用程序执行此操作。
您可以选择加密/解密进出最终选择的信息:
https://stackoverflow.com/questions/2299434/bcrypt-implementation-in-javascript
另外,您可能希望查看OAuth,因为规范中为您的确切用例定义了工作流。