我有一个包含REST后端的应用程序,该后端旨在为来自HTML5 / JavaScript客户端(我也在构建)的请求提供服务。
我正计划实现一种使用基本身份验证的身份验证机制,其中JavaScript客户端将在会话期间存储Base64编码的用户凭据。这些凭据将与“授权:基本”标头中的每个REST请求一起发送。
JavaScript客户端和REST后端之间的所有对话都将通过HTTPS进行。我知道这本身就是一个性能缺陷,因为它增加了加密/解密每个请求/响应的开销,目前还可以。
在这一点上,我真正感兴趣的是它的安全性。我知道我描述的架构并不是什么新颖的东西,并且很多人在其实现中使用了它(至少这是我的理解)。但是,我有兴趣知道是否有人遇到过任何安全漏洞或缺点。
我唯一能想到的是,如果客户端的恶意代码能够以某种方式获得对存储凭据的访问权限……我认为那是极不可能的(但黑客是一群有创造力的人,而某些JS引擎却有漏洞,所以您永远不会知道: -))。有什么想法吗?
“硬”凭证永远不要存储在Javascript可以访问的区域中,否则您将容易受到XSS攻击。
我建议使用访问令牌并将其存储在仅HTTPS的cookie中。您需要对访问令牌进行硬凭证的初始交换,然后将令牌(受时间限制)用于后续请求。
我已经写了一篇很长的文章,它详细介绍了我的答案:单页应用程序的基于令牌的身份验证
希望这可以帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句