CSRF跨域請求偽造防范

攻擊手法和原理

發(fā)送到同域名的請求,瀏覽器都會自動加上Cookie,利用這個特性來偽造請求,繞過登錄態(tài)校驗。

具體例子:https://springdoc.cn/spring-security/features/exploits/csrf.html#csrf

防范措施
  • csrf token令牌:Spring Security優(yōu)先推薦的方式。在需要登錄態(tài)校驗的請求中(比如HEAD里)加上一個自定義token(在登錄成功時由服務(wù)端生成給前端),服務(wù)端對這個token進行校驗。

  • SameSite:也是Spring Security推薦的方式。限制只允許同一個域名下的頁面的請求才攜帶Cookie,比如第一個tab頁登錄了a.com,第二個tab頁面發(fā)起a.com的請求,如果第二個tab頁面的域名不是a.com、那么是不攜帶Cookie的,也就不會繞過登錄態(tài)校驗了。

  • Http referer:服務(wù)端通過校驗referer屬性來判斷請求是不是來自于同一個域名下的頁面,如果不是則拒絕。

補充
  • 如果接口設(shè)計比較規(guī)范,則為了用戶體驗在http的safe method可以不進行校驗。

  • 有些瀏覽器,比如新版的Edge、Chrome,會默認(rèn)設(shè)置SameSite=Lax, 這樣的話鏈接、GET這類請求會加Cookie,其他POST這些不加,保證了一定的安全性

參考:

https://springdoc.cn/spring-security/features/exploits/csrf.html#csrf Spring Security防范csrf的方法

https://springboot.io/t/topic/1253 SameSite講解

https://stackoverflow.com/questions/1413930/is-checking-the-referrer-enough-to-protect-against-a-csrf-attack http referer是否可以作為防范csrf的手段

https://blog.csdn.net/neal1991/article/details/114609935 http referer由瀏覽器添加、js代碼不能修改。Cookie的話如果加了HttpOnly也可以達到相同效果

你真的知道 Cookie 嗎? SameSite 、 Secure 、 HttpOnly - javascript-lNong - SegmentFault 思否

https://www.cnblogs.com/snowie/p/15044091.html 從CSRF攻擊者視角出發(fā),滲透過程中的CSRF漏洞利用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容