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

SpringBoot如何使用mica-xss防止Xss攻擊

 更新時(shí)間:2024年01月12日 15:49:35   作者:龍域、白澤  
這篇文章主要介紹了SpringBoot如何使用mica-xss防止Xss攻擊問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Xss攻擊介紹

XSS攻擊又稱 跨站腳本攻擊,通常指利用網(wǎng)頁(yè)開發(fā)時(shí)留下的漏洞,通過巧妙的方法注入惡意指令代碼到網(wǎng)頁(yè),使用戶加載并執(zhí)行攻擊者惡意制造的網(wǎng)頁(yè)程序。

通俗的講就是通過web應(yīng)用可輸入?yún)?shù),輸入script腳本實(shí)現(xiàn)xss攻擊。

主要防御措施是通過web頁(yè)面關(guān)鍵字特殊字符過濾。

XSS攻擊的原理:攻擊者會(huì)在web頁(yè)面中插入一些惡意的script代碼。

當(dāng)用戶瀏覽該頁(yè)面的時(shí)候,那么嵌套在該頁(yè)面的代碼就會(huì)執(zhí)行,因此會(huì)達(dá)到攻擊用戶的目的。

那根據(jù)這個(gè)原理,實(shí)際上如果沒有做任何的限制,有心人就可以為所欲為了。

可以在里面嵌入一些關(guān)鍵代碼,把你的信息拿走。確實(shí)是個(gè)很嚴(yán)重的問題。

需求概述

在常見的開發(fā)中需要注意xss跨站腳本的攻擊,需要對(duì)參數(shù)關(guān)鍵字做一些校驗(yàn)與過濾,避免將script腳本存入數(shù)據(jù)庫(kù)或者造成數(shù)據(jù)泄漏等安全問題。

實(shí)例

在前端form表單的輸入框中,用戶沒有正常輸入,而是輸入了一段代碼:

</input><img src=1 onerror=alert1> 

這個(gè)正常保存沒有問題。

問題出在了列表查詢的時(shí)候,上面的代碼就生效了,由于圖片的地址亂寫的,所以這個(gè)alert就起作用了來看圖。

XSS攻擊分類

  • 反射型 XSS:通過將XSS攻擊代碼放在請(qǐng)求URL上,將其作為輸入提交到服務(wù)器端。當(dāng)服務(wù)器端解析提交后,XSS代碼會(huì)隨著響應(yīng)內(nèi)容一起傳回瀏覽器,最后瀏覽器解析并執(zhí)行XSS代碼。由于整個(gè)過程像一個(gè)反射,因此稱為反射型XSS。如發(fā)起如下請(qǐng)求:https://www.域名.com/index.php?xss=<script>alter(xss攻擊)</script>。
  • 存儲(chǔ)型 XSS:與反射型XSS“相似”,但不同的是提交的XSS代碼會(huì)被存儲(chǔ)在服務(wù)器端,當(dāng)下一次請(qǐng)求該頁(yè)面時(shí),不用提交XSS代碼,也會(huì)觸發(fā)XSS攻擊。例如當(dāng)進(jìn)行用戶注冊(cè)時(shí),用戶提交一條包含XSS代碼的注冊(cè)信息到服務(wù)器端,當(dāng)用戶查看個(gè)人信息時(shí)候,那些個(gè)人信息就會(huì)被瀏覽器當(dāng)成正常的HTML和JS解析執(zhí)行,從而觸發(fā)了XSS攻擊。
  • DOM XSS:與反射型和存儲(chǔ)型XSS不同之處在于,DOM XSS不需要服務(wù)器的參與,通過瀏覽器的DOM解析即可觸發(fā)XSS攻擊,避免了服務(wù)器端的信息檢驗(yàn)和字符過濾。如發(fā)起如下請(qǐng)求:https://www.域名.com/index.html#alert(xss攻擊)

mica-xss

介紹

Mica,Spring Cloud 微服務(wù)開發(fā)核心包,支持 web 和 webflux。

mica-xss組件說明

  • 對(duì)表單綁定的字符串類型進(jìn)行 xss 處理。
  • 對(duì) json 字符串?dāng)?shù)據(jù)進(jìn)行 xss 處理。
  • 提供路由和控制器方法級(jí)別的放行規(guī)則。

導(dǎo)入依賴

<dependency>
	<groupId>net.dreamlu</groupId>
	<artifactId>mica-core</artifactId>
	<version>2.0.9-GA</version>
</dependency>
<dependency>
	<groupId>net.dreamlu</groupId>
	<artifactId>mica-xss</artifactId>
	<version>2.0.9-GA</version>
</dependency>

mica-xss 配置

@XssCleanIgnore

添加注解@XssCleanIgnore跳過XSS過濾,該注解可作用于類上和方法上

import net.dreamlu.mica.xss.core.XssCleanIgnore;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
?
@RestController
@XssCleanIgnore //設(shè)置該注解 用于跳過配置的Xss 防護(hù)
@RequestMapping("/")
public class IndexController {
?
    @GetMapping("/xss")
    public String xssGet(String data){
        System.out.println(data);
        return data;
    }
}

測(cè)試

參數(shù)為:<script>alert(666)</script>

設(shè)置XSS防護(hù)

去掉注解 @XssCleanIgnore ,則data的值為空字符串

總結(jié)

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

相關(guān)文章

  • SpringBoot整合RabbitMQ, 實(shí)現(xiàn)生產(chǎn)者與消費(fèi)者的功能

    SpringBoot整合RabbitMQ, 實(shí)現(xiàn)生產(chǎn)者與消費(fèi)者的功能

    這篇文章主要介紹了SpringBoot整合RabbitMQ, 實(shí)現(xiàn)生產(chǎn)者與消費(fèi)者的功能,幫助大家更好得理解和學(xué)習(xí)使用SpringBoot框架,感興趣的朋友可以了解下
    2021-03-03
  • 使用記事本編寫java程序全過程圖解

    使用記事本編寫java程序全過程圖解

    這篇文章主要介紹了如何使用記事本編寫java程序,需要的朋友可以參考下
    2014-03-03
  • SpringBoot 引?MybatisGenerator的實(shí)現(xiàn)步驟

    SpringBoot 引?MybatisGenerator的實(shí)現(xiàn)步驟

    本文主要介紹了SpringBoot 引?MybatisGenerator的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • Java設(shè)計(jì)模式七大原則之里氏替換原則詳解

    Java設(shè)計(jì)模式七大原則之里氏替換原則詳解

    在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,里氏替換原則(Liskov Substitution principle)是對(duì)子類型的特別定義。本文將為大家詳細(xì)介紹Java設(shè)計(jì)模式七大原則之一的里氏替換原則,需要的可以參考一下
    2022-02-02
  • java讀取磁盤并遍歷磁盤文件過程解析

    java讀取磁盤并遍歷磁盤文件過程解析

    這篇文章主要介紹了java讀取磁盤并遍歷磁盤文件過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 詳解Java設(shè)計(jì)模式之職責(zé)鏈模式

    詳解Java設(shè)計(jì)模式之職責(zé)鏈模式

    責(zé)任鏈模式是一種行為設(shè)計(jì)模式,使多個(gè)對(duì)象都有機(jī)會(huì)處理請(qǐng)求,從而避免請(qǐng)求的發(fā)送者和接收者之間的耦合關(guān)系,文中通過代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Java對(duì)List進(jìn)行排序的方法總結(jié)

    Java對(duì)List進(jìn)行排序的方法總結(jié)

    在Java中,對(duì)List進(jìn)行排序是一項(xiàng)常見的任務(wù),Java提供了多種方法來對(duì)List中的元素進(jìn)行排序,本文將詳細(xì)介紹如何使用Java來實(shí)現(xiàn)List的排序操作,涵蓋了常用的排序方法和技巧,需要的朋友可以參考下
    2024-07-07
  • Java中雙大括號(hào)初始化的理解與使用

    Java中雙大括號(hào)初始化的理解與使用

    最近重讀Java 編程思想,讀到有關(guān)實(shí)例化代碼塊兒的內(nèi)容,使我對(duì)于使用兩個(gè)大括號(hào)進(jìn)行初始化有了更深的理解,下面這篇文章主要給大家介紹了關(guān)于Java中雙大括號(hào)初始化的理解與使用的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • SpringBoot自動(dòng)裝配原理解析

    SpringBoot自動(dòng)裝配原理解析

    Spring Boot自動(dòng)裝配是指在Spring Boot應(yīng)用啟動(dòng)時(shí),根據(jù)類路徑下的jar包依賴、Bean定義、各種配置文件等信息,自動(dòng)配置Spring應(yīng)用上下文的Bean,本文給大家詳細(xì)解析了SpringBoot自動(dòng)裝配原理,需要的朋友可以參考下
    2024-11-11
  • Java插件擴(kuò)展機(jī)制之SPI案例講解

    Java插件擴(kuò)展機(jī)制之SPI案例講解

    這篇文章主要介紹了Java插件擴(kuò)展機(jī)制之SPI案例講解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07

最新評(píng)論