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

使用SpringSecurity處理CSRF攻擊的方法步驟

 更新時間:2019年03月06日 10:27:22   作者:BBFBBF  
這篇文章主要介紹了使用SpringSecurity處理CSRF攻擊的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

CSRF漏洞現(xiàn)狀

CSRF(Cross-site request forgery)跨站請求偽造,也被稱為One Click Attack或者Session Riding,通??s寫為CSRF或XSRF,是一種對網(wǎng)站的惡意利用。盡管聽起來像跨站腳本(XSS),但它與XSS非常不同,XSS利用站點內(nèi)的信任用戶,而CSRF則通過偽裝成受信任用戶的請求來利用受信任的網(wǎng)站。與XSS攻擊相比,CSRF攻擊往往不大流行(因此對其進(jìn)行防范的資源也相當(dāng)稀少)和難以防范,所以被認(rèn)為比XSS更具危險性。

CSRF是一種依賴web瀏覽器的、被混淆過的代理人攻擊(deputy attack)。

POM依賴

<!-- 模板引擎 freemarker -->
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!-- Security (只使用CSRF部分) -->
<dependency>
 <groupId>org.springframework.security</groupId>
 <artifactId>spring-security-web</artifactId>
</dependency>

配置過濾器

@SpringBootApplication
public class Application {

 public static void main(String[] args) {
  SpringApplication.run(Application.class, args);
 }
 
 /**
  * 配置CSRF過濾器
  *
  * @return {@link org.springframework.boot.web.servlet.FilterRegistrationBean}
  */
 @Bean
 public FilterRegistrationBean<CsrfFilter> csrfFilter() {
  FilterRegistrationBean<CsrfFilter> registration = new FilterRegistrationBean<>();
  registration.setFilter(new CsrfFilter(new HttpSessionCsrfTokenRepository()));
  registration.addUrlPatterns("/*");
  registration.setName("csrfFilter");
  return registration;
 }
}

在form請求中添加CSRF的隱藏字段

<input name="${(_csrf.parameterName)!}" value="${(_csrf.token)!}" type="hidden" />

在AJAX請求中添加header頭

xhr.setRequestHeader("${_csrf.headerName}", "${_csrf.token}");

jQuery的Ajax全局配置

jQuery.ajaxSetup({
 "beforeSend": function (request) {
  request.setRequestHeader("${_csrf.headerName}", "${_csrf.token}");
 }
});

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入理解JAVA多線程之線程間的通信方式

    深入理解JAVA多線程之線程間的通信方式

    下面小編就為大家?guī)硪黄钊肜斫釰AVA多線程之線程間的通信方式。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • java 各種數(shù)據(jù)類型的互相轉(zhuǎn)換實例代碼

    java 各種數(shù)據(jù)類型的互相轉(zhuǎn)換實例代碼

    這篇文章主要介紹了java 各種數(shù)據(jù)類型的互相轉(zhuǎn)換實例代碼,需要的朋友可以參考下
    2020-10-10
  • SparkSQL使用IDEA快速入門DataFrame與DataSet的完美教程

    SparkSQL使用IDEA快速入門DataFrame與DataSet的完美教程

    本文給大家介紹使用idea開發(fā)Spark SQL 的詳細(xì)過程,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-08-08
  • 如何基于Idea遠(yuǎn)程調(diào)試tomcat war包及jar包

    如何基于Idea遠(yuǎn)程調(diào)試tomcat war包及jar包

    這篇文章主要介紹了如何基于Idea遠(yuǎn)程調(diào)試tomcat war包及jar包,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • 詳解JAVA 常量池

    詳解JAVA 常量池

    這篇文章主要介紹了JAVA 常量池的相關(guān)資料,文中講解非常詳細(xì),示例代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • IDEA配置MAVEN本地倉庫的實現(xiàn)步驟

    IDEA配置MAVEN本地倉庫的實現(xiàn)步驟

    本文主要介紹了IDEA配置MAVEN本地倉庫的實現(xiàn)步驟,將詳細(xì)介紹如何配置Maven環(huán)境變量,Maven配置文件,可以輕松地設(shè)置和配置MAVEN本地倉庫,以便在IDEA中享受更高效的開發(fā)體驗
    2023-08-08
  • Spring控制bean加載順序使用詳解

    Spring控制bean加載順序使用詳解

    在使用spring框架開發(fā)過程中,我們可能會遇到某個bean被另一個bean依賴,也就是bean-b的創(chuàng)建必須依賴bean-a等問題,類似這樣的場景還有很多,總結(jié)來說,這就涉及到bean的加載順序問題,如何解決呢,本文將給大家列舉出幾種常用的解決方案,需要的朋友可以參考下
    2023-09-09
  • 任何Bean通過實現(xiàn)ProxyableBeanAccessor接口即可獲得動態(tài)靈活的獲取代理對象或原生對象的能力(最新推薦)

    任何Bean通過實現(xiàn)ProxyableBeanAccessor接口即可獲得動態(tài)靈活的獲取代理對象或原生對象的能力(最新推

    這篇文章主要介紹了任何Bean通過實現(xiàn)ProxyableBeanAccessor接口即可獲得動態(tài)靈活的獲取代理對象或原生對象的能力,通過示例代碼看到,借助ProxyableBeanAccessor接口默認(rèn)實現(xiàn)的getReal、getProxy、selfAs方法,很靈活的按需獲取代理或非代理對象,需要的朋友可以參考下
    2024-02-02
  • Java?POI導(dǎo)出Excel時合并單元格沒有邊框的問題解決

    Java?POI導(dǎo)出Excel時合并單元格沒有邊框的問題解決

    這篇文章主要給大家介紹了關(guān)于Java?POI導(dǎo)出Excel時合并單元格沒有邊框的問題解決辦法,文中通過代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-07-07
  • spring+shiro 整合實例代碼詳解

    spring+shiro 整合實例代碼詳解

    本文通過實例代碼給大家介紹spring+shiro 整合的過程,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-10-10

最新評論