何時使用CSRF保護
什么時候應該使用CSRF保護?我們的建議是使用CSRF保護,可以通過瀏覽器處理普通用戶的任何請求。如果你只是創建一個非瀏覽器客戶端使用的服務,你可能會想要禁用CSRF保護。(即所有處理來自瀏覽器的請求需要是CSRF保護,如果后台服務是提供API調用那么可能就要禁用CSRF保護)
配置CSRF保護
CSRF保護默認情況下使用Java配置啟用
前提注意:SpringBoot實例中應用CSRF
The URL that triggers log out to occur (default is |
CSRF在SpringSecurity中默認是啟動的,那么你的退出請求必須改為POST請求。這確保了注銷需要CSRF令牌和一個惡意的用戶不能強制注銷用戶
所以在SpringSecurity中需要重新配置登出
在登錄頁面輸入用戶名和密碼,點擊登錄,頁面報如下錯誤
這就是頁面在登錄時沒有向后台傳入后台頒發的令牌,具體代碼如下:
這樣才能登錄成功
對於Ajax和JSON的異步請求
每次在提交請求之前先設置header里面的token,這樣才能正常運行
用戶想要堅持CSRF Token在cookie中。 默認情況下CookieCsrfTokenRepository將編寫一個名為 XSRF-TOKEN的cookie和從頭部命名 X-XSRF-TOKEN中讀取或HTTP參數 _csrf。
示例顯式地設置cookieHttpOnly=false. 這是必要的,允許JavaScript(例如AngularJS)讀取它。 如果你不需要使用JavaScript直接讀取cookie的能力,建議省略 cookieHttpOnly=false (通過使用new CookieCsrfTokenRepository()代替) 提高安全性.
The URL that triggers log out to occur (default is |
微信公眾號