spring安全方法中的困惑

spring安全方法中的困惑,spring,security,post,spring-security,get,Spring,Security,Post,Spring Security,Get,我对Spring security的使用有强烈的怀疑,特别是我想知道如何保护连接到控制器的功能(GET和POST)。让我更好地解释一下,为了辩护,我不打算对具有特定角色的授权用户执行该操作,我打算甚至由授权用户来辩护该操作。具体示例:知道对象标识符的用户直接从url调用POST表单,而不是通过任何按钮/链接 如何防止来自其他来源的POST请求 你说: 我想确保职位申请只来自我的表格 SpringSecurity会自动为HTML表单执行此操作。我们称之为这一特性 CSRF预防 Cross Sit

我对Spring security的使用有强烈的怀疑,特别是我想知道如何保护连接到控制器的功能(GET和POST)。让我更好地解释一下,为了辩护,我不打算对具有特定角色的授权用户执行该操作,我打算甚至由授权用户来辩护该操作。具体示例:知道对象标识符的用户直接从url调用POST表单,而不是通过任何按钮/链接

如何防止来自其他来源的POST请求

你说:

我想确保职位申请只来自我的表格

SpringSecurity会自动为HTML表单执行此操作。我们称之为这一特性

CSRF预防

  • Cross
  • Site
  • Request
  • Forgery
Spring Security会自动为您执行此操作。验证任何POST请求以确保其具有CSRF令牌。浏览器加载表单时Spring设置的值。没有这个令牌,Spring安全性

例如:

http
//应用程序安全
.mvcMatcher(“/**”)
.授权请求()
.anyRequest().hasAnyRole(“管理员”、“用户”)
.及()
.httpBasic()
.及()
.formLogin()
;
已启用CSRF保护。要禁用它,我们添加
.csrf().disable()

http
//应用程序安全
.mvcMatcher(“/**”)
.授权请求()
.anyRequest().hasAnyRole(“管理员”、“用户”)
.及()
.httpBasic()
.及()
.formLogin()
.及()
.csrf().disable()
;
您可以看到,没有CSRF令牌,我们无法提交帖子。该用户的解决方案是禁用CSRF保护,因为它是默认启用的


你的问题的答案是:你不必做任何事情。默认情况下,CSRF保护已启用。

默认情况下已启用。 解惑