spring-boot - Spring CSRF保护场景?

标签 spring-boot http security spring-security csrf

我正在尝试更好地理解 Spring CSRF 保护的工作机制。假设我有一个站点 https://example.com/,人们可以在其中对候选人进行投票。用户还可以交换消息。我还有一个用户登录,另一个用户向她发送一条消息,说要单击链接 https://example.com/vote/candiate/30

如果用户点击这个链接,浏览器会不会同时发送登录用户的 CSRF token 和 session ID,从而绕过 CSRF 保护检查?

最佳答案

链接通常不是 CSRF 问题的原因是 CSRF 仅在请求更改某些内容时才是问题。链接(GET 请求)不应更改任何内容。如果是这样,就像在您的示例中一样,我想它会向候选人投票,那么来自外部来源(不同网站)的任何链接也可以通过链接到该 url 来利用“正常”CSRF。

示例中的问题不是 Spring 中的 CSRF 保护不充分,问题是这种情况下的投票是 GET 请求,并且 GET 通常不会在设计上针对 CSRF 进行保护。解决方案是将投票请求更改为 POST,这样可以防止 CSRF(顺便说一句,这也将更加 RESTful)。

关于spring-boot - Spring CSRF保护场景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40874609/

相关文章:

elasticsearch - 将 Elasticsearch 结果转换为 POJO

amazon-web-services - AWS-SQS : How to set maxConcurrentConsumers?

java - joda LocalTime的Jackson连载

spring-boot - JBAS015852 : Could not index class module-info. 类 - Spring Boot + Jboss 7.1.1

delphi - 在特定 Web 服务器上将 IdHTTP1.Get 与 Delphi 和 Indy 9/10 一起使用会返回异常

http - Play Framework : How to process server errors in HTTP filters?

c - GET 请求只获取空字符串

security - Spectre 例子

php - 在这种情况下(PHP/MySQL)可以不清理用户输入吗?

security - Odoo 安全性,防止登录用户使用 jsonrpc 访问不 protected 表?