当前位置: 首页 > 知识库问答 >
问题:

CORS和CSRF处理XSRF攻击问题(spring boot microservice)

端木权
2023-03-14

我正在从事一个有悬而未决的checkmarx问题(最近从veracode迁移过来)的项目,这个安全性方面存在一个问题:

@Configuration
@EnableWebSecurity
public class Security extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity httpSecurity) throws Exception {

        httpSecurity.cors().and().csrf().disable();       
    }
}

Checkmarx不喜欢它,给我看这个:

证券配置。java从disable的用户请求中获取参数。该参数值在代码中流动,最终用于访问应用程序状态改变功能。这可能会启用跨站点请求伪造(XSRF)

还要补充的是,在这个springboot中发出的请求是用idtoken处理的,根据我找到的快速阅读,这个类应该定义得很好。(希望如此)

如果有人能找到解决checkmarx不喜欢的问题的线索,那将非常有帮助,祝你好运!

共有1个答案

东门佐
2023-03-14

checkmarx扫描不喜欢对所有URL完全禁用csrf的部分。如果您有任何想要启用csrf的特定url,可以添加以下代码。

    @Configuration
    @EnableWebSecurity
    public class Security extends WebSecurityConfigurerAdapter {
    
    

    @Override
        protected void configure(HttpSecurity httpSecurity) throws Exception {
            equestMatcher csrfRequestMatcher = new RequestMatcher() {
    
          // Disable CSFR protection on the following urls:
          private AntPathRequestMatcher[] requestMatchers = {
              new AntPathRequestMatcher("/login"),
              new AntPathRequestMatcher("/logout"),
              new AntPathRequestMatcher("/verify/**")
          };

  

    @Override
      public boolean matches(HttpServletRequest request) {
        // If the request match one url the CSFR protection will be disabled
        for (AntPathRequestMatcher rm : requestMatchers) {
          if (rm.matches(request)) { return false; }
        }
        return true;
      } // method matches

    };
     

       httpSecurity.csrf()
            .requireCsrfProtectionMatcher(csrfRequestMatcher)
            .and()
    // other validations.      
        }
    }

请尝试以下链接获取详细答案。Spring Security 3.2 CSRF禁用特定网址

 类似资料:
  • 什么是CSRF CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。 那么CSRF到底能够干嘛呢?你可以这样简单的理解:攻击者可以盗用你的登陆信息,以你的身份模拟发送各种请求。攻击者只要借助少许的社会工程学的诡计,例如通过QQ等聊天软件发送的链接(有些还伪装成

  • 请澄清我对CSRF攻击的概念。在csrf中,我们从隐藏字段发送令牌,即, 我们会在会议的基础上提交表格。如果攻击者找到我的表单并更改隐藏值并提交表单,则他将成功。我怎样才能防止形成。

  • 我正在开发一个java web应用程序,应该非常安全,所以我在SSL服务器上应用了spring security和spring MVC,并启用了CSRF;我使用POST成功地提交了所有表单和生成的CSRF令牌,但是有些页面有GET方法,如果任何攻击者从任何浏览器打开任何页面的源代码,他可以在表单标记中看到生成的CSRF令牌,那么他可以使用它向我们的网站发布任何内容,只要会话由受攻击的用户激活!!我

  • 本文向大家介绍csrf 攻击是怎样攻击的? 如何防御相关面试题,主要包含被问及csrf 攻击是怎样攻击的? 如何防御时的应答技巧和注意事项,需要的朋友参考一下 get, post, delete, 分开, 避免使用get修改数据 避免让第三方站点访问cookie 对referrer进行验证 token 阻止第三方请求 .

  • 8.9 物理访问攻击 物理访问攻击与提升用户的权限类似。即当一个普通用户登录到系统中,破解本地其他用户账户的密码。在Linux中,普通用户可以通过su命令代替其他用户执行某些操作,意味着该用户能够在Linux/Unix系统中提升自己的权限。在这种情况下,可以使用SUCrack工具暴力破解使用su的本地用户账户的密码,来完成后续的渗透攻击操作。本节将介绍使用SUCrack工具攻击该用户。 SUCra

  • 这是我的ApiService类: