首页 > 解决方案 > 我可以使用 JWT 作为反 CSRF 令牌吗

问题描述

我想看看我是否可以在不必在服务器上的 redis 中的用户会话中存储任何其他信息的情况下完成防止 CSRF。在请求删除帐户的表单后,我是否可以使用随机字符串 (uuid4) 签署 JWT 令牌,并使用过期时间保密并将结果发送给客户端。提交表单后,我将验证 JWT。

像这样的东西:

const tokenToSend = jwt.sign(uuid4(), SECRET, { expire: 60 })

标签: securityjwtcsrfcsrf-token

解决方案


描述 Csrf 攻击的一种简单方法是,受害者(登录了易受攻击的网站 A)浏览了第三个网站 B,该网站向网站 A 发出伪装成受害者的请求。因此,为了防止 csrf 攻击,我们必须设置请求(我们想要保护的)不可预测,因此攻击者无法在之前准备好请求。如果你使用 jwt 作为 csrf 令牌,你必须使这个 jwt 对每个请求都是唯一的。


推荐阅读