web安全之跨站腳本攻擊xss

定義:

在這里插入圖片描述

后果

比如黑客可以通過惡意代碼,拿到用戶的cookie就可以去登陸了

分類

存儲型

攻擊者把惡意腳本存儲在目標網站的數據庫中(沒有過濾直接保存),當用戶訪問這個頁面時,惡意腳本會從數據庫中被讀取并在用戶瀏覽器中執行。比如在那些允許用戶評論的網站, 用戶越多,中招的越多

在這里插入圖片描述
流程在這里插入圖片描述

反射型

攻擊者通過構造惡意鏈接,誘使用戶點擊,惡意腳本隨請求發送到目標網站服務器,服務器查看了鏈接以后以為用戶要檢索某些信息,并沒有進行額外的過濾,服務器的數據庫也不需要保存什么信息,就只是返回了對應的結果,瀏覽器只是把結果呈現在頁面.
在這里插入圖片描述
例子
在這里插入圖片描述
反射型一般是利用網頁的檢索功能, 你輸入的檢索信息會顯示在頁面中在這里插入圖片描述
如果url加一個script標簽, 也就注入網頁成為內容的一部分,瀏覽器就會去執行這個js代碼
在這里插入圖片描述

DOM型

攻擊者在url中插入惡意代碼,前端直接從url中獲取惡意代碼并且輸出到頁面,導致惡碼被執行, 跟反射型很像,但瀏覽器并未把惡意代碼發送給服務器, 是前端直接執行的. 比如url中的hash部分是不會發送給服務器的,即url前面的部分服務器照常請求,也就是瀏覽器的渲染分了兩步走,給黑客留下可以攻擊的漏洞
“#”部分的更改不會重新發送請求, 此頁面將hash注入到了頁面,黑客就可以利用這個點往頁面注入內容, 比如獲取cookie等
在這里插入圖片描述在這里插入圖片描述
也就是前端在處理用戶輸入時未正確驗證、過濾或轉義,導致惡意輸入被解釋為代碼并執行 . 解決辦法: 避免使用innerHTML、document.write, v-html、dangerouslySetInnerHTML 把不可信的數據作為 HTML 插到頁面上,而應盡量使用 textContent、setAttribute() 等。

三者區別

DOM 型取出和執?惡意代碼由瀏覽器端完成,不涉及將惡意腳本發送到服務器,屬于前端JavaScript 自身的安全漏洞,而其他兩種屬于服務端的安全漏洞。

應對策略

對用戶輸入進行嚴格的驗證和過濾

前端驗證
  1. 通過h5表單屬性,如pattern正則表達式模式,type字段的屬性進行限制等;
  2. js中的動態驗證: 通過對輸入添加addevenlistener監聽
服務端驗證

無論客戶端是否驗證,都必須在服務器端再次驗證輸入。
可以使用后端語言的內置函數或正則表達式進行驗證。

輸入過濾

  1. 用戶輸入顯示在網頁上之前,將其中的特殊字符(如 <, >, &, ', ")轉義,防止其被解釋為腳本, 防止 XSS 攻擊。
  2. URL 編碼: 將 URL 中的特殊字符轉換為 % 加上兩位十六進制數的形式,以確保 URL 安全傳輸。
let userInput = 'hello world';
let encodedInput = encodeURIComponent(userInput);
console.log(encodedInput);  // hello%20world

限制用戶輸入的長度

防止緩沖區溢出和資源濫用。

CSP

使用 CSP內容安全策略, HTTP 響應頭設Content-Security-Policy,本質是建立一個白名單,告訴瀏覽器哪些外部資源可以加載和執行,從而防止惡意代碼的注入攻擊。

http-only

黑客本質是想獲取cookie拿到客人信息, 而Cookie有一個http-only屬性,表示只能被http請求攜帶,不能通過客戶端js腳本訪問cookie,

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/46038.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/46038.shtml
英文地址,請注明出處:http://en.pswp.cn/web/46038.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Karapathy大神build-nanogpt】Take Away Notes

B站翻譯LINK Personal Note Andrej rebuild gpt2 in pytorch. Take Away Points Before entereing serious training, he use Shakespear’s work as a small debugging datset to see if a model can overfit. Overfitging is a should thing.If we use TF32 or BF32, (by…

Ansys Zemax|探索OS中的物理光學傳播

概述 物理光學傳播 (Physical Optics Propagation, POP) 分析是OpticStudio序列模式中的一個強大的分析工具&#xff0c;它可以用來分析光束的傳播和光纖耦合的效率。這篇文章旨在介紹這一分析工具的功能&#xff0c;并向您展示一些具體的應用示例。本文同時為您介紹了如何使用…

有關電力電子技術的一些相關仿真和分析:⑦三相橋式電壓型PWM逆變器與直接/間接法控制單相全橋結構PWM整流器(MATLAB/Siumlink仿真)

1.1 題目一要求 以三相橋式電壓型PWM逆變器為對象,研究其在不同調制度下,輸出電壓的頻譜成分變化,依據仿真波形分析其工作時序。 參數要求:三相橋式逆變電路,直流側電壓800V,調制波頻率50HZ,開關頻率10kHZ,阻感負載R=10Ω,L=5mH。 1.2 題目二要求 以單相全橋結構P…

高效接入電商訂單API,掌握這些技巧輕松實現

受全渠道大趨勢的影響&#xff0c;很多實體商家紛紛開展電商業務&#xff0c;為了提升業務管理效率&#xff0c;想要在原有管理系統的基礎上通過接入電商訂單API接口&#xff0c;方便將線上線下的訂單進行統一管理&#xff0c;但各個電商平臺的電商訂單API接口那么多&#xff0…

allure_pytest:AttributeError: ‘str‘ object has no attribute ‘iter_parents‘

踩坑記錄 問題描述&#xff1a; 接口自動化測試時出現報錯&#xff0c;報錯文件是allure_pytest庫 問題分析&#xff1a; 自動化測試框架是比較成熟的代碼&#xff0c;報錯也不是自己寫的文件&#xff0c;而是第三方庫&#xff0c;首先推測是allure_pytest和某些庫有版本不兼…

彩電上自帶的推箱子游戲是什么編程語言開發的?

2000年左右的廈新彩電上&#xff0c;自帶了推箱子、華容道游戲。界面如下&#xff1a; 在線版推箱子游戲&#xff0c;網址&#xff1a;https://www.tuixiangzi.cn/ BASIC&#xff0c;全稱是Beginners All-purpose Symbolic Instruction Code&#xff0c;含義是初學者通用符號…

Ubuntu 添加gcc頭文件搜索路徑

對個人用戶生效 sudo vim ~/.bashrc在該文件末尾添加 #gcc C_INCLUDE_PATH$C_INCLUDE_PATH:your_path export C_INCLUDE_PATH #g CPLUS_INCLUDE_PATH$CPLUS_INCLUDE_PATH:your_path export CPLUS_INCLUDE_PATH最后&#xff0c;重啟終端即可生效 可用以下命令查看搜索路徑 ec…

深入了解Memcached:緩存技術的利器

文章目錄 深入了解Memcached&#xff1a;緩存技術的利器一、Memcached簡介什么是Memcached&#xff1f;Memcached的特點 二、Memcached的工作原理緩存機制分布式緩存 三、Memcached的架構客戶端與服務器數據存儲 四、Memcached的安裝與配置安裝Memcached在Linux上安裝在macOS上…

【IEEE出版順利申請中】2024年第四屆電子信息工程與計算機科學國際會議(EIECS 2024)

2024年第四屆電子信息工程與計算機科學國際會議(EIECS 2024) 2024 4th International Conference on Electronic Information Engineering and Computer Science 中國延吉 | 2024年9月27-29日 電子信息的出現與計算機技術、通信技術和高密度存儲技術的迅速發展并在各個領域里…

每日練習,不要放棄

目錄 題目1.下面敘述錯誤的是 ( )2.java如何返回request范圍內存在的對象&#xff1f;3.以下代碼將打印出4.下列類定義中哪些是合法的抽象類的定義&#xff1f;&#xff08;&#xff09;5.以下代碼段執行后的輸出結果為6.以下代碼運行輸出的是總結 題目 選自牛客網 1.下面敘述…

深度學習驅動智能超材料設計與應用

在深度學習與超材料融合的背景下&#xff0c;不僅提高了設計的效率和質量&#xff0c;還為實現定制化和精準化的治療提供了可能&#xff0c;展現了在材料科學領域的巨大潛力。深度學習可以幫助實現超材料結構參數的優化、電磁響應的預測、拓撲結構的自動設計、相位的預測及結構…

最全—航班信息管理系統【數組版】

航班管理系統&#xff08;數組版&#xff09; 航班信息查詢系統 1、 導言 用所學過的 C 語言&#xff0c;以及鏈表相關知識&#xff0c;實現一個航班信息的錄入、查詢、顯示、 排序等功能。航班信息 節點設計&#xff0c;請參見附錄。 2、 基本功能&#xff1a; 使用鏈表或數組…

開發指南047-前端模塊版本

平臺前端框架內置了一個文件version.vue <template> <div> <br> 應用名稱: {{name}} <br> 當前版本&#xff1a;{{version}} <br> 服務網關: {{gateway}} </div> </template> <scrip…

分析示例 | Simufact Additive鋪粉增材制造工藝缺陷仿真分析方案

近年來&#xff0c;隨著增材制造工藝的快速發展&#xff0c;仿真模擬的重要性日益凸顯&#xff0c;越來越多的科研及應用單位選擇在實際打印之前&#xff0c;通過仿真預測打印問題&#xff0c;從而優化打印工藝、減少物理試錯次數、降低打印成本。就不同增材工藝仿真的占比而言…

netxduo http server 創建回復以及json解析

我們今天要整http的response,比如我創建的http server,我對它發送了一個POST,然后服務器解析出json里的body,再回復過去。今天會用到json的解析庫cjson以及postman去發送消息。這次用nx_web_http_server.h這個庫,不用之前的nx_http_server.h 本教程在最后附帶app_netxduo…

大數據基礎:Doris重點架構原理

文章目錄 Doris重點架構原理 一、Apache Doris介紹 二、Apache Doris使用場景 三、Apache Doris架構原理 四、Apache Doris 特點 Doris重點架構原理 一、Apache Doris介紹 基于 MPP 架構的高性能、實時的分析型數據庫&#xff0c;以極速易用的特點被人們所熟知&#xff…

JVM---對象是否存活及被引用的狀態

1.如何判斷對象是否存活 1.1 引用計數算法 概念&#xff1a;在對象頭部增加一個引用計數器,每當有一個地方引用它時&#xff0c;計數器值就加一&#xff1b;當引用失效時&#xff0c;計數器值就減一&#xff1b;任何時刻計數器為零的對象就是不可能再被使用的。 優點&#xff1…

vue2遷移到vue3注意點

vue2遷移到vue3注意點 1、插槽的修改 使用 #default &#xff0c; 以及加上template 模板 2、 類型的定義&#xff0c;以及路由&#xff0c;vue相關資源&#xff08;ref, reactive,watch&#xff09;的引入等 3、類裝飾器 1&#xff09;vue-class-component是vue官方庫,作…

ubuntu搭建harbor私倉

1、環境準備 鏈接: https://pan.baidu.com/s/1q4XBWPd8WdyEn4l253mpUw 提取碼: 7ekx --來自百度網盤超級會員v2的分享 準備一臺Ubuntu 機器:192.168.124.165 將上面兩個文件考入Ubuntu上面 2、安裝harbor 安裝Docker Harbor倉庫以容器方式運行,需要先安裝好docker,參考:…

詳解python基本語法

文章目錄 數據變量數據結構 循環-判斷-用戶輸入判斷用戶輸入循環 函數參數返回值將函數存儲在模塊中 文件和異常讀取文件異常操作Json文件 類對象創建類使用類類的繼承導入外部類 測試測試函數創建測試 Python 是一種廣泛使用的高級編程語言&#xff0c;以其清晰的語法和代碼可…