首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用任何CSRF解决方案的cookie中的JWT是否与localStorage中的JWT一样容易受到XSS的攻击?

使用任何CSRF解决方案的cookie中的JWT是否与localStorage中的JWT一样容易受到XSS的攻击?
EN

Security用户
提问于 2016-04-11 18:23:53
回答 1查看 2.8K关注 0票数 4

我读过JWT令牌不应该存储在localStroage中,因为XSS攻击可以读取它们。提出的解决方案是在HTTPOnly cookies中存储JWT令牌,并使用反CSRF/双提交cookie。OWASP说,所有CSRF解决方案都容易受到XSS的攻击。如果是这样的话,那么使用CSRF的HTTPOnly cookie中的JWT是否同样容易受到XSS的攻击呢?如果是这样的话,为什么还要麻烦w/ CSRF而只将您的JWT存储在localStorage中呢?

EN

回答 1

Security用户

发布于 2016-04-11 19:24:38

我读过JWT令牌不应该存储在localStroage中,因为XSS攻击可以读取它们。

是真的。如果您将信息存储在JWT中,并且不希望攻击者通过XSS读取这些信息,那么将它们存储在httpOnly cookie中是个好主意。

建议的解决方案是将JWT令牌存储在HTTPOnly cookie中,并使用CSRF w/双提交cookie。

我想你在这里混淆了两件事。将令牌存储在httpOnly cookie中已经是不被读取的解决方案。

CSRF是另一回事,它不能用来读出数据。但是,它可以用于在网站上为用户执行该用户不打算执行的操作。其中一个解决方案是双提交cookie模式。

OWASP说,所有CSRF解决方案都容易受到XSS的攻击。

是的,差不多。

如果是这样的话,那么使用CSRF的HTTPOnly cookie中的JWT是否同样容易受到XSS的攻击呢?

问题是,您不能使用存储在带有双重提交cookie模式的httpOnly cookie中的反CSRF令牌。

您需要客户端访问令牌,因为否则不可能将令牌插入表单中。

因此,要使这一工作,您需要使您的cookie而不是httpOnly,或存储在其他地方,除了cookie,如在本地存储。

无论哪种方式,一旦获得XSS,攻击者就可以绕过您的CSRF保护。

如果是这样的话,为什么还要麻烦w/ CSRF而只将您的JWT存储在localStorage中呢?

如果您想对攻击者隐藏JWT的内容,即使存在XSS漏洞,也应该将其存储在httpOnly cookie中。如果您不关心,或者您需要自己访问信息,那么localStorage也同样有效。

票数 4
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/120160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档