在一个spring boot项目中,需要防止CSRF攻击,按理说应该集成spring security才对。
但是不想使工程变得太复杂,这时可以只把spring security中的相关filter引入来进行。
在pom中添加相关依赖
org.springframework.boot
spring-boot-starter-freemarker
org.springframework.security
spring-security-web
在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字段
ajax中添加CSRF的头xhr.setRequestHeader("${_csrf.headerName}", "${_csrf.token}");
本文来自投稿,不代表访得立场,如若转载,请注明出处:http://www.found5.com//view/1245.html