JWT 在未经身份验证的端点上进行 CSRF 保护?

Posted

技术标签:

【中文标题】JWT 在未经身份验证的端点上进行 CSRF 保护?【英文标题】:JWT for CSRF protection on unauthenicated endpoints? 【发布时间】:2015-02-11 21:01:08 【问题描述】:

我有很多 api 端点,我想保护它们免受 CSRF 的影响。我想以一种无状态的方式来做这件事,所以自然会想到 JWT。

问题是,这些端点不需要用户登录。

所以,我的问题是,我可以使用 JWT,但我无法在服务器端验证令牌——我没有可以匹配的登录用户。

在这种情况下有什么方法可以使用 JWT 吗?

【问题讨论】:

【参考方案1】:

CSRF 仅对浏览器隐式验证请求(cookie 或基本验证)的请求存在问题。但如果您没有任何身份验证,任何网站都可能调用您的 API。

所以,如果我对您的理解正确,您正在寻找一种方法来确保对您的 API 的请求来自您的网络应用程序。

看看 OAuth 2.0 中的client credentials grant。它基本上发出一个令牌来验证应用程序而不是用户。

【讨论】:

以上是关于JWT 在未经身份验证的端点上进行 CSRF 保护?的主要内容,如果未能解决你的问题,请参考以下文章

保护未经身份验证的 REST API

静默刷新在 OPTIONS 预检上进行身份验证,但不在 GET 到 UserInfo 端点上进行身份验证

vertx 中的 JWT 身份验证引发未经授权的行为

如果使用 JWT,我需要 CSRF 吗?

使用 oauth2 和 jwt 在 FastApi 中进行身份验证

客户端是不是应该在每条路由上进行身份验证? [关闭]