服务器之家

服务器之家 > 正文

详解如何在spring boot中使用spring security防止CSRF攻击

时间:2021-04-26 15:14     来源/作者:大神带我来搬砖

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中添加相关依赖

?
1
2
3
4
5
6
7
8
9
10
11
<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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@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字段

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

ajax中添加csrf的头

?
1
xhr.setrequestheader("${_csrf.headername}", "${_csrf.token}");

github地址是 https://github.com/kabike/spring-boot-csrf

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.jianshu.com/p/3b8b92657ce9

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
返回顶部