錙銖必較:在spring boot中使用神器防止CSRF攻擊
在一個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,學習視訊),歡迎加群領取。