【Web安全】csrf、ssrf和xxe的區別

CSRF、SSRF 和 XXE 是三種不同類型的網絡安全漏洞,它們的原理、攻擊目標、利用方式和危害場景均有顯著區別。以下從核心定義、原理、場景等維度詳細對比三者的差異。

一、核心定義與原理對比

漏洞類型

全稱

核心定義

核心原理

CSRF

跨站請求偽造

攻擊者誘導用戶在已登錄的情況下,通過瀏覽器向目標服務器發送惡意請求,冒充用戶執行操作。

利用用戶的會話狀態(如 Cookie),讓服務器誤以為請求是用戶主動發起的,從而執行未授權操作。

SSRF

服務器端請求偽造

攻擊者通過構造惡意請求,誘導服務器主動向指定目標(內網 / 本地 / 第三方服務)發起請求,竊取信息或攻擊內網。

服務器存在未過濾的 “請求轉發” 功能(如從 URL 加載資源),攻擊者控制請求目標,利用服務器權限訪問受限資源。

XXE

XML 外部實體注入

攻擊者通過構造包含惡意外部實體的 XML 輸入,誘導 XML 解析器加載外部資源,導致文件泄露或內網訪問。

XML 解析器未禁用外部實體(External Entity),解析包含<!ENTITY>

定義的 XML 時,會執行外部資源加載(如本地文件、內網 URL)。

二、關鍵區別詳解

1. 攻擊主體與發起者不同
  • CSRF:攻擊由客戶端(用戶瀏覽器) 發起。攻擊者通過惡意網頁、郵件等誘導用戶訪問,利用用戶的瀏覽器向目標服務器發送請求(用戶此時已登錄,持有合法會話)。
    例:用戶登錄網銀后,訪問攻擊者的惡意網站,網站自動發送轉賬請求,網銀服務器因用戶已登錄而執行操作。
  • SSRF:攻擊由服務器端發起。攻擊者通過前端輸入(如 URL 參數)構造惡意請求,服務器接收到請求后,會按攻擊者的指令主動向指定目標(如內網 IP、本地服務端口)發起請求,并將結果返回給攻擊者。
    例:某網站有 “根據 URL 加載圖片” 功能,攻擊者輸入http://192.168.1.1:3306(內網 MySQL 端口),服務器會主動訪問該內網地址,攻擊者可通過返回結果探測內網服務。
  • XXE:攻擊由XML 解析器觸發。攻擊者向接受 XML 輸入的應用提交包含惡意外部實體的 XML 數據,應用的 XML 解析器在解析時會加載外部實體指向的資源(如本地文件、內網 URL),并將內容返回給攻擊者。
    例:某 API 接受 XML 格式數據,攻擊者提交包含<DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd">]>的 XML,解析器會讀取/etc/passwd并返回內容。
2. 攻擊目標與場景不同
  • CSRF:目標是服務器上的用戶權限操作,僅能執行用戶權限范圍內的操作(如轉賬、改密碼、發消息等),無法直接獲取數據,主要危害是 “越權執行操作”。
    常見場景:社交平臺自動發動態、電商平臺下單、后臺權限操作等。
  • SSRF:目標是服務器可訪問的資源,包括:
    • 內網服務(如數據庫、Redis、后臺管理系統);
    • 本地服務(如localhost:8080的后臺接口);
    • 第三方服務(如云存儲 API)。
      危害:探測內網拓撲、竊取內網數據、攻擊內網服務(如 Redis 未授權訪問)、繞過防火墻等。
  • XXE:目標是XML 解析器可訪問的資源,包括:
    • 本地文件(如/etc/passwd、配置文件);
    • 內網 URL(如訪問內網 Web 服務、數據庫);
      危害:讀取敏感文件、探測內網服務、觸發命令執行(結合其他漏洞時)等。
3. 利用條件不同
  • CSRF
    • 用戶需已登錄目標服務器(持有有效會話 Cookie);
    • 目標操作可通過 HTTP 請求觸發(如 GET/POST);
    • 服務器未驗證請求的真實性(如無 CSRF Token、Referer 檢查)。
  • SSRF
    • 服務器存在 “請求轉發” 功能(如從 URL 加載數據、遠程圖片、API 調用);
    • 服務器對用戶輸入的目標 URL 未做嚴格過濾(如未禁止內網 IP、file:///gopher://等協議)。
  • XXE
    • 應用接受 XML 格式輸入(如 API 接口、文件上傳);
    • XML 解析器未禁用外部實體(ENTITY)、參數實體(%ENTITY)或 DTD(文檔類型定義);
    • 解析結果可能被攻擊者獲取(如錯誤信息泄露、返回內容包含實體數據)。
4. 典型攻擊流程不同
  • CSRF 攻擊流程
    1. 用戶登錄 A 網站(目標服務器),獲取會話 Cookie;
    2. 攻擊者誘導用戶訪問惡意網站 B;
    3. 網站 B 向 A 網站發送惡意請求(如轉賬),請求攜帶用戶的 Cookie;
    4. A 網站驗證 Cookie 有效,執行請求操作。
  • SSRF 攻擊流程
    1. 服務器提供 “根據 URL 獲取資源” 功能(如/fetch?url=xxx);
    2. 攻擊者構造惡意 URL(如http://127.0.0.1:6379,Redis 本地端口);
    3. 服務器接收到請求,按 URL 向目標發起訪問;
    4. 服務器將訪問結果返回給攻擊者,或因訪問行為導致內網安全問題。
  • XXE 攻擊流程
    1. 應用接受 XML 輸入(如提交訂單、數據同步);
    2. 攻擊者提交包含外部實體的 XML(如<DOCTYPE ... [<!ENTITY xxe SYSTEM "file:///etc/passwd">]>);
    3. XML 解析器加載外部實體,讀取/etc/passwd內容;
    4. 解析結果通過響應或錯誤信息泄露給攻擊者。
5. 危害與防御措施不同

漏洞類型

主要危害

核心防御措施

CSRF

越權執行操作(轉賬、改配置等),無數據竊取能力。

1. 添加 CSRF Token 并驗證;2. 檢查 Referer/Origin;3. 關鍵操作需二次驗證(如密碼)。

SSRF

探測內網拓撲、竊取內網數據、攻擊內網服務(如 Redis 未授權)、繞過防火墻。

1. 限制請求協議(僅允許 http/https);2. 過濾內網 IP(如 10.0.0.0/8、127.0.0.1);3. 禁用危險協議(gopher、file)。

XXE

讀取本地敏感文件、訪問內網服務、觸發命令執行(間接)。

1. 禁用 XML 外部實體(如 libxml2 的LIBXML_NOENT

禁用);2. 禁止 DTD 解析;3. 使用安全的 XML 解析庫(如 Python 的 defusedxml)。

三、總結:核心差異一句話概括

  • CSRF:“借用戶的手,干用戶能做的事”(客戶端冒充用戶操作);
  • SSRF:“借服務器的手,訪問服務器能到的地方”(服務器主動訪問惡意目標);
  • XXE:“借 XML 解析器的手,讀解析器能讀的資源”(利用 XML 解析加載外部實體)。


三者均屬于注入類或偽造類漏洞,但因攻擊主體、利用場景不同,防御策略和危害范圍也存在顯著差異。

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

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

相關文章

【Lua】XLua一鍵構建工具

將以下代碼放入Editor文件夾&#xff0c;點擊菜單欄的XLua/一鍵生成代碼和熱補丁 即可。using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using UnityEditor; using UnityEngine;/// <summary> /// XLua自動化構建工具 //…

20250808:EasyGBS 對接大華 ICC 平臺問題處理

最近有個現場在對接大華 ICC 平臺時&#xff0c;客戶反饋&#xff1a;EasyGBS 級聯成功&#xff0c;但 ICC 顯示下級離線。EasyGBS 成功對接過很多家國標平臺&#xff0c;但這種情況確實少見。我們遠程過去確認配置無誤后&#xff0c;就進行了抓包&#xff0c;拿到包我就納悶了…

js使用webscoket時使用自定義二進制包協議時并發問題處理

this.server new WebSocket.Server({ port: this.port });this.server.on(connection, (ws, req) > {const uniqueId dataUtil.uuid();ws.id uniqueId;global.serverSession.set(uniqueId, ws);logger.debug({ message: 客戶端已連接, traceId: ws.id, address: req.sock…

元數據管理與數據治理平臺:Apache Atlas 分類傳播 Classification Propagation

文中內容僅限技術學習與代碼實踐參考&#xff0c;市場存在不確定性&#xff0c;技術分析需謹慎驗證&#xff0c;不構成任何投資建議。Apache Atlas 框架是一套可擴展的核心基礎治理服務&#xff0c;使企業能夠有效、高效地滿足 Hadoop 中的合規性要求&#xff0c;并支持與整個企…

TSF應用開發與運維部署

架構演進歷程&#xff1a;單體架構-->SOA架構-->微服務架構-->Service Mesh騰訊微服務平臺TSF (Tencent Service Framework) 是一個圍繞應用和微服務的 PaaS 平臺。提供服務全生命周期管理能力和數據化運營支持。提供多維度應用、服務、機器的監控數據&#xff0c;助力…

linux開發之mmap內存映射

mmap概念 mmp是 將文件或設備直接映射到進程的虛擬內存空間 的一種機制&#xff0c;可實現程序像訪問內存一樣訪問文件&#xff0c;而不需要傳統的 read()/write()系統調用 文件內容被映射到進程的地址空間&#xff0c;讀寫文件就像操作內存一樣&#xff0c;操作系統負責自動同…

CPP繼承

繼承 一、繼承概述 1、為什么需要繼承 如下示例&#xff0c;Person 類、Student 類、Teacher 類有大量重復的代碼&#xff0c;造成代碼冗余&#xff0c;降低開發效率。我們可以通過繼承來解決這一問題。在面向對象的編程語言中&#xff0c;繼承是一個核心概念。主要作用將重復的…

模塊 PCB 技術在未來通信領域的創新突破方向

未來通信領域對數據傳輸速率、信號穩定性及設備集成度的要求持續攀升&#xff0c;模塊 PCB 作為通信設備的關鍵組件&#xff0c;其技術創新成為推動行業發展的核心動力。獵板 PCB 憑借深厚的技術積累與持續的研發投入&#xff0c;在模塊 PCB 技術創新方面取得諸多突破&#xff…

mysql的InnoDB索引總結

MySQL InnoDB索引知識點總結 1. 索引類型 1.1 聚簇索引&#xff08;Clustered Index&#xff09; 定義與特性 定義&#xff1a;聚簇索引是InnoDB的默認存儲方式&#xff0c;數據行按照主鍵的順序物理存儲在磁盤上特性&#xff1a; 每個InnoDB表只能有一個聚簇索引數據頁中的記錄…

C++模板的補充

類模板(上一篇沒講到類模板C/C內存管理&函數模板-CSDN博客&#xff09; 類模板的定義&#xff1a; template<class T1, class T2, ..., class Tn> class 類模板名 {// 類內成員定義 }; 用一個簡單的棧例子講類模板 #define _CRT_SECURE_NO_WARNINGS #include &l…

用JOIN替代子查詢的查詢性能優化

一、子查詢的性能瓶頸分析?重復執行成本?關聯子查詢會導致外層每行數據觸發一次子查詢&#xff0c;時間復雜度為O(M*N)sql-- 典型低效案例 SELECT e.employee_id, (SELECT d.department_name FROM departments d WHERE d.department_id e.department_id) FROM employees e; …

【設計模式】訪問者模式模式

訪問者模式&#xff08;Visitor Pattern&#xff09;詳解一、訪問者模式簡介 訪問者模式&#xff08;Visitor Pattern&#xff09; 是一種 行為型設計模式&#xff08;對象行為型模式&#xff09;&#xff0c;它允許你在不修改對象結構的前提下&#xff0c;為對象結構中的元素添…

比特幣現貨和比特幣合約的區別與聯系

一、基本定義項目現貨&#xff08;Spot&#xff09;合約&#xff08;Futures / Perpetual&#xff09;本質直接買賣比特幣本身買賣比特幣價格的衍生品合約所得資產真實的 BTC合約頭寸&#xff08;沒有直接持有 BTC&#xff09;結算方式交割比特幣現金結算&#xff08;多數平臺&…

Qt/C++開發監控GB28181系統/實時監測設備在線離線/視頻預覽自動重連/重新點播取流/低延遲

一、前言說明 一個好的視頻監控系統&#xff0c;設備掉線后能夠自動重連&#xff0c;也是一個重要的功能指標&#xff0c;如果監控系統只是個rtsp流地址&#xff0c;那非常好辦&#xff0c;只需要重新打開流地址即可&#xff0c;而gb28181中就變得復雜了很多&#xff0c;需要多…

此芯p1開發板使用OpenHarmony時llama.cpp不同優化速度對比(GPU vs CPU)

硬件環境 Cix P1 SoC 瑞莎星睿 O6 開發板 rx580顯卡 產品介紹&#xff1a; https://docs.radxa.com/orion/o6/getting-started/introduction OpenHarmony 5.0.0 使用vulkan后端的llama.cpp &#xff08;GPU&#xff09; # ./llama-bench -m /data/qwen1_5-0_5b-chat-q2_k.…

Android 四大布局:使用方式與性能優化原理

一、四大布局基本用法與特點1. LinearLayout&#xff08;線性布局&#xff09;使用方式&#xff1a;<LinearLayoutandroid:orientation"vertical" <!-- 排列方向&#xff1a;vertical/horizontal -->android:layout_width"match_parent"android:…

Redis的BigKey問題

Redis的BigKey問題 什么是大Key問題&#xff1f; 大key問題其實可以說是大value問題&#xff0c;就是某個key對應的value所占據的存儲空間太大了&#xff0c;所以導致我們在操作這個key的時候花費的時間過長&#xff08;序列化\反序列化&#xff09;&#xff0c;從而降低了redi…

TDengine IDMP 產品基本概念

基本概念 元素 (Element) IDMP 通過樹狀層次結構來組織數據&#xff0c;樹狀結構里的每個節點被稱之為元素 (Element)。元素是一個物理的或邏輯的實體。它可以是具體的物理設備&#xff08;比如一臺汽車&#xff09;&#xff0c;物理設備的一個子系統&#xff08;比如一臺汽車的…

專題二_滑動窗口_將x減到0的最小操作數

一&#xff1a;題目解釋&#xff1a;每次只能移除數組的邊界&#xff0c;移除的邊界的總和為x&#xff0c;要求返回你移除邊界的最小操作數&#xff01;也就是說你最少花幾次移除邊界&#xff0c;就能夠讓這些移除的邊界的和為x&#xff0c;則返回這個次數&#xff01;所以這個…

CentOS 7 下通過 Anaconda3 運行llm大模型、deepseek大模型的完整指南

CentOS 7 下通過 Anaconda3 運行llm大模型、deepseek大模型的完整指南A1 CentOS 7 下通過 Anaconda3 運行大模型的完整指南一、環境準備二、創建專用環境三、模型部署與運行四、優化配置常見問題解決B1 CentOS 7 下通過 Anaconda3 使用 CPU 運行 DeepSeek 大模型的完整方案一、…