日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringSecurity csrf验证忽略某些请求

發布時間:2025/4/14 javascript 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringSecurity csrf验证忽略某些请求 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? ? ?前幾天項目中遇到springSecurity問題,研究了大半天,掉進了csrf的坑,先認識一下csrf

CSRF概念CSRF跨站點請求偽造(Cross—Site Request Forgery),跟XSS攻擊一樣,存在巨大的危害性,你可以這樣來理解:
? ? ? ?攻擊者盜用了你的身份,以你的名義發送惡意請求,對服務器來說這個請求是完全合法的,但是卻完成了攻擊者所期望的一個操作,比如以你的名義發送郵件、發消息,盜取你的賬號,添加系統管理員,甚至于購買商品、虛擬貨幣轉賬等。?如下:其中Web A為存在CSRF漏洞的網站,Web B為攻擊者構建的惡意網站,User C為Web A網站的合法用戶。

? ? ? ?CSRF攻擊攻擊原理及過程如下:

? ? ? ?1.?用戶C打開瀏覽器,訪問受信任網站A,輸入用戶名和密碼請求登錄網站A;

? ? ? ?2.在用戶信息通過驗證后,網站A產生Cookie信息并返回給瀏覽器,此時用戶登錄網站A成功,可以正常發送請求到網站A;

? ? ? ?3.?用戶未退出網站A之前,在同一瀏覽器中,打開一個TAB頁訪問網站B;

? ? ? ?4.?網站B接收到用戶請求后,返回一些攻擊性代碼,并發出一個請求要求訪問第三方站點A;

? ? ? ?5.?瀏覽器在接收到這些攻擊性代碼后,根據網站B的請求,在用戶不知情的情況下攜帶Cookie信息,向網站A發出請求。網站A并不知道該請求其實是由B發起的,所以會根據用戶C的Cookie信息以C的權限處理該請求,導致來自網站B的惡意代碼被執行。?

所以在實際的網站中你可以使用,springsecurity默認是開啟的,所以你在每次訪問的時候你得在你的前端加上頭,不會加的可以看其他博客

? ? ? ?但是在一些訪問的時候如果一些接口沒帶請求的頭就是csrf,這樣就會說沒有權限,比如支付寶,微信的回調等,這些是不會加的,所以我們要忽略。

? ? ? 在網上百度了很久也沒有找到,于是自己翻看源碼找到了方法。

?

第一種:配置的時候直接配置忽略方法。

? ? 代碼如下 直接如圖紅框配置即可。

?

第二種:添加RequestMatcher

代碼如下

public class CsrfSecurityRequestMatcher implements RequestMatcher { private Pattern allowedMethods = Pattern.compile("^(GET|HEAD|TRACE|OPTIONS)$"); private RegexRequestMatcher unprotectedMatcher = new RegexRequestMatcher("/unprotected", null); @Override public boolean matches(HttpServletRequest request) { if(allowedMethods.matcher(request.getMethod()).matches()){ return false; } return !unprotectedMatcher.matches(request); } }

?

將這個配置到httpconfig中

這樣一些不加頭的請求就不會被攔截了,解決了問題。

?

?有什么問題可以加我qq1058179540

?

轉載于:https://www.cnblogs.com/bingshu/p/8691445.html

總結

以上是生活随笔為你收集整理的SpringSecurity csrf验证忽略某些请求的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。