JWT 和防伪令牌

Posted

技术标签:

【中文标题】JWT 和防伪令牌【英文标题】:JWT and antiforgery token 【发布时间】:2019-03-05 10:31:59 【问题描述】:

我一直在研究 ,发现 Microsoft 的 this 文章表明在 JWT 中不需要进行防伪验证。

这是对的还是我理解错了?

我正在使用 webapi 和带有 JWT 的 angular 6 开发应用程序

【问题讨论】:

【参考方案1】:

防伪令牌可防止基于 cookie 的 CSRF 攻击。

只要您的 JWT手动附加到所选请求(与附加到浏览器中每个请求的 cookie 不同),CSRF 就不再可能。

所以,答案是:对于没有在 cookie 中发送的令牌是正确的。

【讨论】:

我以为我明白了,谢谢您的回复 但是你会让自己更容易受到 XSS 的攻击,因为 javascript 现在可以访问你的令牌。最好将其存储在 httponly cookie 中,然后修复 csrf,因为与修复其他内容相比,这很简单。 @smnbbrv 如果您在身份验证后将 JWT 附加到每个请求的标头中怎么办? (会话) 非常感谢您的简单回答。你用几句话解释了一个复杂的话题,很容易理解。谢谢!

以上是关于JWT 和防伪令牌的主要内容,如果未能解决你的问题,请参考以下文章

登录页面上是不是需要防伪令牌?

带有 ViewModel 和两个表单的页面上的“防伪 cookie 令牌和表单字段令牌不匹配”

如何使用防伪令牌攻击后期数据

解决防伪令牌问题

带有 Durandal SPA 模板的 MVC 身份验证和防伪令牌

Asp.net Mvc:Jquery post 数组 + 防伪令牌