Security——CSRF功能


跨站請求偽造(英語:Cross-site request forgery)

舉個栗子:用戶登錄的情況下,這時候,瀏覽器打開了黑客設計的頁面,頁面提供了一個帶有刪除操作的按鈕,按鈕的地址配的是我們系統的地址(抓包等手段獲取),用戶點擊了該按鈕,我們后台數據就真的刪了。

 

1、簡單的做法,就是通過 “數據加密 + token” 的方式,增加更多的校驗機制,讓我們的表單無法輕易復制。

(因為BS架構的特殊性,頁面源碼始終對外開放,想要攻擊仍然存在辦法,不過這已經不屬於CSRF漏洞,就不繼續深入討論了。)

2、檢查Referer字段,請求頭中有一個Referer字段,說明了請求的來源地址,但是這個字段是否有效,取決於瀏覽器的功能。

 

Security的默認做法:通過模版引擎,直接將token渲染到頁面上,token可以隱藏在頁面任意一個位置,每次提交表單,都要攜帶這個token。

提交表單的時候,token 如果設置在 request 的 header 中,header 字段名,需要通過 ${_csrf.headerName} 渲染。
提交表單的時候,token 如果設置在 request 的 parameter 中,parameter 字段名,需要通過 ${_csrf.parameterName} 渲染。

 

在開始試用Security的時候,為了方便通常會先禁用csrf,我們需要把這個功能啟用起來,取消注釋。

        //啟用CSRF,放置CSRF攻擊
        http.csrf().disable();

在登錄頁面的表單中加入token。其它頁面與登錄頁面類似,需要在表單中增加token字段,更簡單的做法,可以直接調整全局的ajax代碼切面。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM