Web常見攻擊方式及防御措施

一、常見Web攻擊方式

1. 跨站腳本攻擊(XSS)

攻擊原理:攻擊者向網頁注入惡意腳本,在用戶瀏覽器執行

  • 存儲型XSS:惡意腳本存儲在服務器(如評論區)

  • 反射型XSS:惡意腳本通過URL參數反射給用戶

  • DOM型XSS:前端JavaScript不安全地操作DOM

2. 跨站請求偽造(CSRF)

攻擊原理:誘騙用戶在已認證的網站上執行非預期操作

  • 利用用戶的登錄狀態

  • 通過惡意鏈接/圖片發起請求

3. SQL注入

攻擊原理:通過輸入數據插入或"注入"惡意SQL命令

  • 攻擊者可以查看、修改、刪除數據庫內容

  • 常見于未過濾的用戶輸入拼接SQL語句

4. 點擊劫持(Clickjacking)

攻擊原理:誘使用戶點擊隱藏的惡意元素

  • 使用透明iframe覆蓋合法頁面

  • 用戶看似點擊安全內容,實則觸發惡意操作

5. 文件上傳漏洞

攻擊原理:上傳惡意文件到服務器

  • 上傳可執行腳本獲取服務器權限

  • 上傳超大文件導致DoS(Denial of Service(拒絕服務))

6. 分布式拒絕服務(DDoS)

攻擊原理:用大量請求淹沒服務器資源

  • 消耗帶寬、CPU或內存資源

  • 使合法用戶無法訪問服務

7. 中間人攻擊(MITM)

攻擊原理:攔截通信雙方的流量

  • 公共WiFi常見風險

  • 竊取敏感信息如登錄憑證

二、防御措施

1. XSS防御

  • 輸入過濾:對用戶輸入進行轉義和驗證

function escapeHtml(str) {return str.replace(/[&<>'"]/g, tag => ({'&': '&amp;','<': '&lt;','>': '&gt;',"'": '&#39;','"': '&quot;'}[tag]));
}
  • 輸出編碼:根據輸出上下文(HTML/JS/URL)進行編碼

  • Content Security Policy (CSP):限制腳本來源

<meta http-equiv="Content-Security-Policy" content="default-src 'self'">

HttpOnly Cookie:防止JavaScript訪問敏感Cookie

//http
Set-Cookie: sessionid=xxxx; HttpOnly; Secure

2. CSRF防御

  • CSRF Token:表單中包含服務器驗證的令牌

<input type="hidden" name="_csrf" value="隨機令牌">

SameSite Cookie屬性

//http
Set-Cookie: sessionid=xxxx; SameSite=Strict
  • 驗證Referer/Origin頭:檢查請求來源

  • 關鍵操作二次驗證:如短信/郵件確認

3. SQL注入防御

  • 參數化查詢/預處理語句

// 正確方式
db.query('SELECT * FROM users WHERE id = ?', [userId]);// 錯誤方式(易受攻擊)
db.query(`SELECT * FROM users WHERE id = ${userId}`);
  • ORM框架:使用Sequelize、TypeORM等

  • 最小權限原則:數據庫用戶僅賦予必要權限

  • 輸入驗證:白名單驗證輸入格式

4. 點擊劫持防御

  • X-Frame-Options頭

//http
X-Frame-Options: DENY

CSP的frame-ancestors指令:?

//http
Content-Security-Policy: frame-ancestors 'none'

?JavaScript防御(后備方案):

if (top !== self) top.location = self.location;

?

5. 文件上傳防御

  • 文件類型驗證:檢查MIME類型和擴展名

  • 文件內容掃描:檢查實際內容而非僅擴展名

  • 重命名文件:使用隨機生成的文件名

  • 隔離存儲:上傳目錄不解析腳本

  • 大小限制:防止超大文件攻擊

6. DDoS防御

  • CDN服務:分散流量壓力

  • 速率限制(Rate Limiting)

// Express中間件示例
const rateLimit = require('express-rate-limit');
app.use(rateLimit({ windowMs: 15*60*1000, max: 100 }));

?

  • Web應用防火墻(WAF):過濾惡意流量

  • 云防護服務:如Cloudflare、AWS Shield

7. 中間人攻擊防御

  • HTTPS強制:HSTS頭

//http
Strict-Transport-Security: max-age=31536000; includeSubDomains
  • 證書釘扎(HPKP):固定可信證書

  • 敏感操作二次驗證:即使會話被劫持

三、綜合安全建議

通過組合這些措施,可以顯著提高Web應用的安全性,但需注意安全是一個持續過程而非一次性任務。

  1. 保持更新:定期更新框架、庫和服務器軟件

  2. 最小權限原則:所有服務使用最低必要權限運行

  3. 深度防御:多層安全措施而非依賴單一防護

  4. 安全頭設置

    //http
    X-Content-Type-Options: nosniff
    X-XSS-Protection: 1; mode=block

  5. 日志監控:記錄并分析異常訪問模式

  6. 定期滲透測試:主動發現漏洞

  7. 安全意識培訓:防范社會工程學攻擊

?

?

?

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

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

相關文章

CGAL 網格內部生成隨機點

文章目錄 一、簡介二、實現代碼三、實現效果參考資料一、簡介 這里實現一種基于點的射線法來判斷一個點是否一個多面提的內部,通過不停的生成隨機點,以達到我們想要的效果,思路其實相對簡單,但是很實用。具體內容如下: 1. 首先,我們需要構建隨機方向的射線(半無限射線)…

tigase源碼學習雜記-組件化設計

前言 tigase官方號稱高度抽象和組件化。這篇文章就記錄一下我研究組件化的相關設計 概述 我的理解tigase高度組件化是所有的關鍵的功能的類&#xff0c;它都稱之為組件&#xff0c;即只要繼承于BasicComponent&#xff0c;它都可以成為組件&#xff0c;BasicComponent類實現…

【Redis】 Redis中常見的數據類型(二)

文章目錄 前言一、 List 列表1. List 列表簡介2.命令3. 阻塞版本命令4. 內部編碼5. 使用場景 二、Set 集合1. Set簡單介紹2. 普通命令3 . 集合間操作4. 內部編碼5. 使用場景 三、Zset 有序集合1.Zset 有序集合簡介2. 普通命令3. 集合間操作4. 內部編碼5. 使用場景 結語 前言 在…

OpenAI為何覬覦Chrome?AI時代瀏覽器爭奪戰背后的深層邏輯

目錄 引言&#xff1a;一場蓄謀已久的"蛇吞象"計劃 一、Chrome&#xff1a;數字世界的"黃金入口" 1.1 用戶規模對比&#xff1a;ChatGPT與Chrome的懸殊差距 1.2 Chrome的生態價值遠超瀏覽器本身 二、OpenAI的"入口焦慮"與戰略布局 2.1 AI時…

二分小專題

P1102 A-B 數對 P1102 A-B 數對 暴力枚舉還是很好做的&#xff0c;直接上雙層循環OK 二分思路:查找邊界情況&#xff0c;找出最大下標和最小下標&#xff0c;兩者相減1即為答案所求 廢話不多說&#xff0c;上代碼 //暴力O(n^3) 72pts // #include<bits/stdc.h> // usin…

java延遲map, 自定義延遲map, 過期清理map,map能力擴展。如何設置map數據過期,改造map適配數據過期

1. 功能&#xff1a; map 線程安全&#xff0c;能夠對存入的數據設置過期&#xff0c;或者自定義刪除 2. aliyun代碼看到的一個對象正好符合上述需求 出處是aliyun sdk core jar包的一個類。感興趣可以去下載下jar查看 下面是源碼&#xff1a; package com.aliyuncs.policy.…

國芯思辰|可編程線性霍爾傳感器AH820替換HAL825用于汽車渦輪增壓

渦輪增壓技術是提高發動機的進氣能力的技術&#xff0c;霍爾傳感器可以達到監測渦輪轉速的作用。在渦輪增壓器的軸上安裝一個永磁體&#xff0c;當渦輪旋轉時&#xff0c;永磁體也隨之轉動&#xff0c;產生周期性變化的磁場。霍爾傳感器靠近永磁體安裝&#xff0c;能夠檢測到磁…

(轉)正則化等最優化方法介紹

參考&#xff1a; http://blog.csdn.net/pipisorry/article/details/52108040 附帶 損失函數&#xff1b;經驗風險&#xff1b;正則化&#xff1b;結構風險 損失函數&#xff08;loss function&#xff09;是用來估量你模型的預測值f(x)與真實值Y的不一致程度&#xff0c;它是…

多維時序 | LightGBM多變量時序預測(Matlab完整源碼和數據,適合基礎小白研究)

多維時序 | LightGBM多變量時序預測&#xff08;Matlab完整源碼和數據&#xff0c;適合基礎小白研究&#xff09; 目錄 多維時序 | LightGBM多變量時序預測&#xff08;Matlab完整源碼和數據&#xff0c;適合基礎小白研究&#xff09;效果一覽基本介紹程序設計參考資料 效果一覽…

【解決】Android Gradle Sync 報錯 Could not read workspace metadata

異常信息 Caused by: java.io.UncheckedIOException:Could not read workspace metadata from C:\Users\xxx\.gradle\caches\transforms-4\69955912123c68eecd096b71c66ee211\metadata.bin 異常原因 看字面意思是不能讀取metadata文件&#xff0c;原因可能是因為緩存目錄異常…

Java面試實戰:電商場景下的Spring Cloud微服務架構與緩存技術剖析

第一輪提問 面試官: 謝飛機&#xff0c;我們先從基礎問題開始。請問你知道Spring Boot和Spring Cloud的區別嗎&#xff1f; 謝飛機: 當然知道&#xff01;Spring Boot主要用于快速構建獨立運行的Spring應用&#xff0c;而Spring Cloud則是在Spring Boot的基礎上實現分布式系統…

Express 路由使用、請求報文參數獲取、路由參數提取

Express 路由使用、請求報文參數獲取、路由參數提取 &#x1f6e3;? 一、Express 路由基本用法 const express require(express); const app express();// 基本 GET 路由 app.get(/, (req, res) > {res.send(Hello GET!); });// POST 路由 app.post(/submit, (req, res)…

【前端】手寫代碼輸出題易錯點匯總

兩天更新完。 const promise new Promise((resolve, reject) > {console.log(1);console.log(2); }); promise.then(() > {console.log(3); }); console.log(4); //1 //2 //4promise.then 是微任務&#xff0c;它會在所有的宏任務執行完之后才會執行&#xff0c;同時需…

基于深度學習和單目測距的前車防撞及車道偏離預警系統

隨著人工智能與計算機視覺技術的飛速發展,高級駕駛輔助系統(ADAS)已成為現代汽車智能化的關鍵標志。它不僅能有效提升行車安全,還能為自動駕駛時代的全面到來奠定堅實基礎。本文深入剖析一套功能完備、基于深度學習模型的 ADAS 系統的架構與核心實現,帶您領略智能駕駛背后…

JWT(JSON Web Token)用戶認證

1、頒發token <!--JWT依賴--><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version></dependency><dependency><groupId>javax.xml.bind</groupId>…

【質量管理】現代TRIZ(萃智)理論概述

一、什么是TRIZ理論 TRIZ理論,即發明問題解決理論(Teoriya Resheniya Izobreatatelskikh Zadatch),是由前蘇聯發明家根里奇阿奇舒勒(Genrich S. Altshuller)于1946年創立的。它是一門基于知識的、面向人的發明問題解決系統化方法學。TRIZ理論通過研究大量的專利,總結出技…

大模型學習筆記 day01 提示工程入門1.One-shot Few-shot提示學習法

如何應?和激發?語?模型的各??能? 提示?程 Prompt engineering 通過輸?更加合理的提示&#xff0c;引導模型進?更有效的結果輸出&#xff0c;本質上是?種引導和激發模型能?的?法更加輕量級的引導?法&#xff0c;嘗試和實施的?檻更低&#xff1b;問題是受限于模型…

FPGA初級項目10——基于SPI的DAC芯片進行數模轉換

FPGA初級項目10——基于SPI的DAC芯片進行數模轉換 DAC芯片介紹 DAC 芯片&#xff08;數字模擬轉換器&#xff09;是一種將數字信號轉換為連續模擬信號&#xff08;如電壓或電流&#xff09;的集成電路&#xff0c;廣泛應用于電子系統中&#xff0c;連接數字世界與模擬世界。 …

如何在 Windows上安裝 Python 3.6.5?

Windows 系統安裝步驟 下載安裝包 安裝包下載鏈接&#xff1a;https://pan.quark.cn/s/9294ca0fd46a 運行安裝程序 雙擊下載的 .exe 文件&#xff08;如 python-3.6.5.exe&#xff09;。 勾選 Add Python 3.6 to PATH&#xff08;重要&#xff01;這將自動配置環境變量&…

Cephalon端腦云:神經形態計算+邊緣AI·重定義云端算力

前引&#xff1a;當算力不再是“奢侈品” &#xff0c;在人工智能、3D渲染、科學計算等領域&#xff0c;算力一直是橫亙在個人與企業面前的“高墻”。高性能服務器價格動輒數十萬元&#xff0c;專業設備維護成本高&#xff0c;普通人大多是望而卻步。然而&#xff0c;Cephalon算…