怎么在springboot中使用springsecurity防止CSRF攻击

这篇文章主要介绍怎么在spring boot中使用spring security防止CSRF攻击,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

创新互联建站是一家专业提供沂南企业网站建设,专注与成都网站建设、做网站、H5场景定制、小程序制作等业务。10年已为沂南众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

CSRF是什么?

CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。

 CSRF可以做什么?

你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。

CSRF漏洞现状

CSRF这种攻击方式在2000年已经被国外的安全人员提出,但在国内,直到06年才开始被关注,08年,国内外的多个大型社区和交互网站分别爆出CSRF漏洞,如:NYTimes.com(纽约时报)、Metafilter(一个大型的BLOG网站),YouTube和百度HI......而现在,互联网上的许多站点仍对此毫无防备,以至于安全业界称CSRF为“沉睡的巨人”。

在一个spring boot项目中,需要防止CSRF攻击,可以只把spring security中的相关filter引入来进行.

在pom中添加相关依赖

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-freemarker</artifactId>
    </dependency>
    <!-- Security (used for CSRF protection only) -->
    <dependency>
      <groupId>org.springframework.security</groupId>
      <artifactId>spring-security-web</artifactId>
    </dependency>
  </dependencies>

在app启动时,添加CsrfFilter

@SpringBootApplication
public class Application extends WebMvcConfigurerAdapter {

  @Bean
  public FilterRegistrationBean csrfFilter() {
    FilterRegistrationBean registration = new FilterRegistrationBean();
    registration.setFilter(new CsrfFilter(new HttpSessionCsrfTokenRepository()));
    registration.addUrlPatterns("/*");
    return registration;
  }

  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }
}

form中添加CSRF的hidden字段

<input name="${(_csrf.parameterName)!}" value="${(_csrf.token)!}" type="hidden">

ajax中添加CSRF的头

xhr.setRequestHeader("${_csrf.headerName}", "${_csrf.token}");

以上是“怎么在spring boot中使用spring security防止CSRF攻击”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!

网站标题:怎么在springboot中使用springsecurity防止CSRF攻击
本文来源:https://www.cdcxhl.com/article20/pcpsjo.html

成都网站建设公司_创新互联,为您提供建站公司自适应网站响应式网站网站营销网站策划微信小程序

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

微信小程序开发