REST API 中的 CSRF 令牌
Posted
技术标签:
【中文标题】REST API 中的 CSRF 令牌【英文标题】:CSRF token in rest api 【发布时间】:2021-05-04 18:16:53 【问题描述】:在 rest API 中使用 CSRF 令牌是否有用?据我所知,我们没有会话,因此我们应该将令牌发送给客户端以进行下一次请求或提交表单。
在 ajax(xhr) 调用中再次使用它是否有帮助。有没有其他选择?
为此,我一直在阅读 spring 文档,其中也有一些示例。但我很好奇它真的有用吗?
顺便说一下,我的服务器是 spring 2.2,我的客户端是 Angular 9。
谢谢
【问题讨论】:
【参考方案1】:CSRF 令牌对于防止 XSS 攻击至关重要,例如,您在一个选项卡中登录到您的银行,并访问我的恶意网站,该网站将向您的银行发送一个隐藏表单以窃取您的信用卡号。
如果您想建立一个更安全的网站,每个在后端操纵状态的请求(POST、PUT、DELETE 等)都应该包含一个 CSRF 令牌,以确保请求来自您网站上的表单并且仅您的网站。
您可以在 Owasps webpage 上阅读有关 CSRF 令牌的更多信息。
【讨论】:
问题是,如果我在不使用会话的情况下将令牌发送给用户,那么最终用户将能够获得 csrf 令牌以及其他令牌。我的问题是阻止他们提交表单是否是正确的机制????以上是关于REST API 中的 CSRF 令牌的主要内容,如果未能解决你的问题,请参考以下文章
SPA 使用的经过身份验证的 Rest API:如何获取用于登录和注册表单的 CSRF 令牌?
如何以及在何处生成 CSRF 令牌以通过 REST API 向 Django 应用程序发出请求?
你如何在 django rest 框架中实现 CSRF 令牌?
Django Rest Framework 将不接受我的 CSRF 令牌