欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring Security中防護CSRF功能詳解

 更新時間:2023年01月20日 14:11:48   作者:愛上口袋的天空  
這篇文章主要介紹了Spring Security中防護CSRF功能,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

CSRF是什么?

CSRF(Cross-site request forgery),中文名稱:跨站請求偽造,也被稱為:one click attack/session riding,縮寫為:CSRF/XSRF。

CSRF可以做什么?

你這可以這么理解CSRF攻擊:攻擊者盜用了你的身份,以你的名義發(fā)送惡意請求。

CSRF能夠做的事情包括:以你名義發(fā)送郵件,發(fā)消息,盜取你的賬號,甚至于購買商品,虛擬貨幣轉(zhuǎn)賬…

造成的問題包括:個人隱私泄露以及財產(chǎn)安全。

CSRF的原理

下圖簡單闡述了CSRF攻擊的思想:

在這里插入圖片描述

從上圖可以看出,要完成一次CSRF攻擊,受害者必須依次完成兩個步驟:

  • 1.登錄受信任網(wǎng)站A,并在本地生成Cookie。
  • 2.在不登出A的情況下,訪問危險網(wǎng)站B。 

看到這里,你也許會說:“如果我不滿足以上兩個條件中的一個,我就不會受到CSRF的攻擊”。

是的,確實如此,但你不能保證以下情況不會發(fā)生:

  • 1.你不能保證你登錄了一個網(wǎng)站后,不再打開一個tab頁面并訪問另外的網(wǎng)站。
  • 2.你不能保證你關(guān)閉瀏覽器了后,你本地的Cookie立刻過期,你上次的會話已經(jīng)結(jié)束。(事實上,關(guān)閉瀏覽器不能結(jié)束一個會話,但大多數(shù)人都會錯誤的認為關(guān)閉瀏覽器就等于退出登錄/結(jié)束會話了…)
  • 3.上圖中所謂的攻擊網(wǎng)站,可能是一個存在其他漏洞的可信任的經(jīng)常被人訪問的網(wǎng)站。

Spring Security解決方案

將配置類中下面這段代碼注釋掉:

.and().csrf().disable(); //關(guān)閉csrf防護

然后,在登錄頁面添加一個隱藏域:

<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}" />

Spring Security實現(xiàn)防護csrf的原理

spring security在認證之后會生成一個csrfToken保存到HttpSession或者Cookie中。

之后每次請求到來時,從請求中提取csrfToken,和保存的csrfToken作比較,進而判斷當(dāng)前請求是否合法。主要通過CsrfFilter過濾器來完成。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺談JAVA 責(zé)任鏈模式

    淺談JAVA 責(zé)任鏈模式

    這篇文章主要介紹了JAVA 責(zé)任鏈模式的的相關(guān)資料,文中講解非常細致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • Java實現(xiàn)多個wav文件合成一個的方法示例

    Java實現(xiàn)多個wav文件合成一個的方法示例

    這篇文章主要介紹了Java實現(xiàn)多個wav文件合成一個的方法,涉及java文件流讀寫、編碼轉(zhuǎn)換、解析等相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • Java后端SSM框架圖片上傳功能實現(xiàn)方法解析

    Java后端SSM框架圖片上傳功能實現(xiàn)方法解析

    這篇文章主要介紹了Java后端SSM框架圖片上傳功能實現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • 淺談java中String與StringBuffer的不同

    淺談java中String與StringBuffer的不同

    String在棧中,StringBuffer在堆中!所以String是不可變的,數(shù)據(jù)是共享的。StringBuffer都是獨占的,是可變的(因為每次都是創(chuàng)建新的對象!)
    2015-11-11
  • Java遞歸調(diào)用如何實現(xiàn)數(shù)字的逆序輸出方式

    Java遞歸調(diào)用如何實現(xiàn)數(shù)字的逆序輸出方式

    這篇文章主要介紹了Java遞歸調(diào)用如何實現(xiàn)數(shù)字的逆序輸出方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • nohup運行Java tail查看日志方式

    nohup運行Java tail查看日志方式

    nohup命令允許程序在用戶退出賬戶或關(guān)閉終端后繼續(xù)運行,常與"&"結(jié)合使用以實現(xiàn)程序的后臺執(zhí)行,配合重定向操作,nohup可以將程序輸出保存到日志文件中,如nohup java -jar XXX.jar &> myout.log &,此外,tail命令可用于實時監(jiān)控日志文件的變化
    2024-09-09
  • SpringBoot從0到1整合銀聯(lián)無跳轉(zhuǎn)支付功能附源碼

    SpringBoot從0到1整合銀聯(lián)無跳轉(zhuǎn)支付功能附源碼

    這篇文章主要介紹了SpringBoot從0到1整合銀聯(lián)無跳轉(zhuǎn)功能支付附源碼,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 深入淺出重構(gòu)Mybatis與Spring集成的SqlSessionFactoryBean(上)

    深入淺出重構(gòu)Mybatis與Spring集成的SqlSessionFactoryBean(上)

    通常來講,重構(gòu)是指不改變功能的情況下優(yōu)化代碼,但本文所說的重構(gòu)也包括了添加功能。這篇文章主要介紹了重構(gòu)Mybatis與Spring集成的SqlSessionFactoryBean(上)的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • Springboot接收?Form?表單數(shù)據(jù)的示例詳解

    Springboot接收?Form?表單數(shù)據(jù)的示例詳解

    這篇文章主要介紹了Springboot接收?Form?表單數(shù)據(jù)的實例代碼,本文通過圖文實例代碼相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08
  • java easyUI實現(xiàn)自定義網(wǎng)格視圖實例代碼

    java easyUI實現(xiàn)自定義網(wǎng)格視圖實例代碼

    這篇文章主要給大家介紹了關(guān)于java easyUI實現(xiàn)自定義網(wǎng)格視圖的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10

最新評論