个人博客地址:https://alexaccele.github.io/
CSRF
跨站点请求伪造(Cross-Site Request Forgery,CSRF)是一种常见的攻击手段。
它的工作原理是在用户使用浏览器安全登录网站后,浏览器会以Cookie的形式保存信息,其中就包含用户的登录信息,然后在不关闭浏览器的情况下,用户可能访问一个危险网站,这个危险网站就能通过获取Cookie信息来仿造用户的请求,进而请求安全网站,并进行一些危险操作从而给网站带来危险。
CSRF的常见特性
- 依靠用户标识危害网站
- 利用网站对用户标识的信任
- 欺骗用户的浏览器发送HTTP请求给目标站点
- 另外可以通过IMG标签会触发一个GET请求,可以利用它来实现CSRF攻击。
防止CSRF
在spring-security中提供了处理CSRF的过滤器,并且在默认情况下,是启用过滤器来防止CSRF攻击的,但在开发过程中,有时CSRF防护可能会影响我们的开发效率,所以这里给出关闭的方法。
/*安全配置类*/
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)// 启用方法安全设置
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.and().csrf().ignoringAntMatchers("/h2-console/**");//禁用H2控制台的CSRF防护,即关闭指定请求的csrf
//.and().csrf().disable();完全关闭csrf
}
}