锱铢必较:在spring boot中使用神器防止CSRF攻击

在一个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}"); 

喜欢的点点关注,点点赞。

对Java技术,架构技术感兴趣的同学,欢迎加QQ群585550789,一起学习,相互讨论。

群内已经有小伙伴将知识体系整理好(源码,笔记,PPT,学习视频),欢迎加群领取。

你可能感兴趣的:(activeMQ,rabbitMQ,maven,Tomcat,netty,dockerhub)