使用Javascript客户端进行REST基本身份验证的安全性缺点(如果有)是什么?

阿德里亚诺·诺布雷·奥利维拉(Adriano Nobre Oliveira)

我有一个包含REST后端的应用程序,该后端旨在为来自HTML5 / JavaScript客户端(我也在构建)的请求提供服务。

我正计划实现一种使用基本身份验证的身份验证机制,其中JavaScript客户端将在会话期间存储Base64编码的用户凭据。这些凭据将与“授权:基本”标头中的每个REST请求一起发送。

JavaScript客户端和REST后端之间的所有对话都将通过HTTPS进行。我知道这本身就是一个性能缺陷,因为它增加了加密/解密每个请求/响应的开销,目前还可以。

在这一点上,我真正感兴趣的是它的安全性。我知道我描述的架构并不是什么新颖的东西,并且很多人在其实现中使用了它(至少这是我的理解)。但是,我有兴趣知道是否有人遇到过任何安全漏洞或缺点。

我唯一能想到的是,如果客户端的恶意代码能够以某种方式获得对存储凭据的访问权限……我认为那是极不可能的(但黑客是一群有创造力的人,而某些JS引擎却有漏洞,所以您永远不会知道: -))。有什么想法吗?

罗伯特

“硬”凭证永远不要存储在Javascript可以访问的区域中,否则您将容易受到XSS攻击。

我建议使用访问令牌并将其存储在仅HTTPS的cookie中。您需要对访问令牌进行硬凭证的初始交换,然后将令牌(受时间限制)用于后续请求。

我已经写了一篇很长的文章,它详细介绍了我的答案:单页应用程序的基于令牌的身份验证

希望这可以帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Javascript客户端进行REST基本身份验证的安全性缺点(如果有)是什么?

如何使用Axis2 ADB客户端进行基本身份验证?

Spring WS 客户端 — 使用 KeyStore/TrustStore 和凭据进行身份验证(基本身份验证)

Spring REST安全性:仅在特定端点上启用基本身份验证

如何在ruby中使用savon客户端进行抢先的基本身份验证调用?

使用 HTTP 基本身份验证获取 JWT 令牌的安全性如何?

如何从Windows客户端使用CUPS的基本身份验证?

JsReport客户端使用基本身份验证呈现报告

具有基本安全性的REST Web服务的Android客户端

如果有这样的事情,实现操作和行身份验证的最佳方法是什么

IIS托管具有SSL安全性的WCF-“ HTTP请求被客户端身份验证方案'Anonymous'禁止”错误

具有基本身份验证的客户端SSL POST给出DEPTH_ZERO_SELF_SIGNED_CERT错误

当我使用 reqwest 的客户端构建器时,有没有办法向代理添加基本身份验证?

在 REST 节点 js 服务器中进行身份验证,使用带有 Facebook 登录的 Android 客户端

使用HttpClient进行客户端身份验证

如何将错误返回给REST客户端(如果有的话)?

在客户端标题 C# 中设置基本身份验证

Swagger基本身份验证在php客户端中失败

Java Web Service客户端基本身份验证

如何设置Squid,以便它绕过localnet上客户端的基本身份验证?

C# - etcd GRPC 客户端基本身份验证

SOAP客户端基本身份验证:HTTP响应“ 401:未授权”

如果有新版本,如何强制SPA客户端进行硬刷新?

使用对象作为数组索引的缺点(如果有)是什么?

使用其余客户端/ javascript对Microsoft Outlook Web(owa)进行身份验证。

使用JavaScript的基本身份验证

Java重客户端向受OpenAM保护的servlet进行身份验证的正确方法是什么?

在将RADIUS用于WPA2企业的上下文中,“客户端证书”是什么意思(如果有)?

在需要客户端证书进行身份验证的Node.js中进行REST调用