繁体   English   中英

sessionStorage和cookie中的JWT令牌?

[英]JWT tokens in sessionStorage vs cookies?

Stormpath上有很多博客文章,谈到您应该如何使用cookie来存储JWT而不是sessionStorage / localStorage:

陈述的主要原因是,如果您加载的第3方javascript依赖关系受到威胁,则它可以通过sessionStorage / localStorage进行窃取并从JWT传输到某个地方。

但这使我感到困惑。 我了解攻击媒介,但是如果您遇到了第三方JavaScript依赖受损的情况,您是否仍然没有有效地解决问题,因为它可以监听/捕获用户与应用程序交互时所做的任何事情?

我是https://stormpath.com/blog/where-to-store-your-jwts-cookies-vs-html5-web-storage的作者

当页面上存在XSS时,攻击者有权:

  • HTML5网络存储(本地和会话)
  • 未使用httpOnly标志设置的Cookie
  • 控制选项卡,直到它关闭为止,并且可以发出未经授权的请求

您还可以开始制定攻击措施来规避XSRF保护。

当存在XSRF漏洞时,攻击者有权:

  • 如果您可以诱使用户在那里(或在存在XSS的情况下将其发送到那里),则从第三方域发出未经授权的请求。

您可以看到,当存在XSS漏洞时,您可以发出未经授权的请求,并且攻击者需要跳过更多的陷阱才能利用XSRF。 这意味着,当存在XSS时(无论是否具有XSRF保护),都会存在发出未经授权的请求的攻击媒介。

希望这可以为我的下一点做准备。

与窃取代表用户身份和会话的无状态令牌相比,XSRF攻击或未经授权的请求具有较小的影响和范围。 泄漏令牌意味着攻击者将拥有完全控制权,可以根据用户的时间在其计算机上代表用户发起攻击。

总之,在存在XSS的情况下,您:

  • 将访问令牌存储在Web存储中,则XSS存在期间使用您的网站的所有用户的令牌都会受到威胁。 这意味着攻击者可以获得数千个有效的访问令牌,并且可能造成很大的危害(如果您将刷新令牌存储在Web存储中,则危害更大)。 用户还容易受到来自其自己的浏览器的未授权请求的攻击。

  • 将访问令牌存储在httpOnly cookie中,不会损害任何用户的令牌。 但是,即使存在XSRF保护,用户也容易受到来自其浏览器的未授权请求的攻击。

希望这些信息对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM