在一个spring boot项目中,需要防止CSRF攻击,按理说应该集成spring security才对。
但是不想使工程变得太复杂,这时可以只把spring security中的相关filter引入来进行。
在pom中添加相关依赖
org.springframework.bootspring-boot-starter-freemarker<!-- Security (used for CSRF protection only) -->org.springframework.securityspring-security-web
在app启动时,添加CsrfFilter
@SpringBootApplicationpublicclassApplicationextendsWebMvcConfigurerAdapter{@BeanpublicFilterRegistrationBeancsrfFilter() {FilterRegistrationBeanregistration =newFilterRegistrationBean(); registration.setFilter(newCsrfFilter(newHttpSessionCsrfTokenRepository())); registration.addUrlPatterns("/*");returnregistration; } 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,学习视频),欢迎加群领取。
网友评论