【HW系列】—web常規漏洞(SQL注入與XSS)

SQL注入與XSS攻防解析(安全防御指南)

一、SQL注入基礎(防御視角)

??1. 簡介??

SQL注入是一種通過構造非預期SQL語句操縱數據庫的攻擊技術。作為開發者,需重點關注輸入驗證與查詢安全,建立全流量監測機制,識別異常參數變形。

??2. 原理剖析??

當應用程序未對用戶輸入充分驗證時,攻擊者可通過拼接額外SQL指令繞過驗證或竊取數據。
??防御重點??:

監控SQL日志中的非常規語法
使用預編譯語句隔離代碼與數據

??3. 危害等級??

高風險:數據泄露、權限繞過、文件系統操作
防御優先級:需在開發階段嵌入安全機制

??4. 分類與防護

??

在這里插入圖片描述

二、SQL注入防御關鍵技術

??輸入驗證規則??

數字字段:正則匹配1+$
字符串字段:過濾’";<>等特殊符號
白名單機制:用戶名僅允許字母數字(2+$)

數據庫防火墻配置??

攔截特征:UNION SELECT、SLEEP()、BENCHMARK()
權限控制:應用賬號禁用FILE/EXECUTE權限

盲注類型與防御對比

原創

一、XSS漏洞核心防御

XSS基礎

跨站腳本攻擊簡稱XSS,是指惡意攻擊者往Web頁面里插入惡意代碼,當受害者的瀏覽器加載網站時代碼就會執行。跨站點腳本是一種客戶端代碼注入攻擊。


成因

由于服務器對輸入和輸出沒有做嚴格的驗證,導致攻擊者構造的字符輸出到前端時被瀏覽器執行,當作有效代碼解析執行從而產生危害。

危害

  1. 釣魚欺騙:最典型的就是利用目標網站的反射型跨站腳本漏洞將目標網站重定向到釣魚網站,或者注入釣魚 JavaScript 以監控目標網站的表單輸入,甚至發起基于 DHTML 更高級的釣魚攻擊方式。
  2. 網站掛馬:跨站時利用 IFrame 嵌入隱藏的惡意網站或者將被攻擊者定向到惡意網站上,或者彈出惡意網站窗口等方式都可以進行掛馬攻擊。
  3. 身份盜用:Cookie 是用戶對于特定網站的身份驗證標志,XSS 可以盜取到用戶的 Cookie,從而利用該 Cookie 盜取用戶對該網站的操作權限。如果一個網站管理員用戶 Cookie 被竊取,將會對網站引發巨大的危害。
  4. 盜取網站用戶信息:當能夠竊取到用戶 Cookie 從而獲取到用戶身份使,攻擊者可以獲取到用戶對網站的操作權限,從而查看用戶隱私信息。
  5. 垃圾信息發送:比如在 SNS 社區中,利用 XSS 漏洞借用被攻擊者的身份發送大量的垃圾信息給特定的目標群。
  6. 劫持用戶 Web 行為:一些高級的 XSS 攻擊甚至可以劫持用戶的 Web 行為,監視用戶的瀏覽歷史,發送與接收的數據等等。
  7. XSS 蠕蟲:XSS 蠕蟲可以用來打廣告、刷流量、掛馬、惡作劇、破壞網上數據、實施 DDoS 攻擊等。

分類

(1) 反射型
反射型XSS,又稱非持久型XSS,攻擊相對于受害者而言是一次性的 具體表現在受害者點擊了含有的惡意JavaScript腳本的url,惡意代碼并沒有保存在目標網站,而Web應用程序只是不加處理的把該惡意腳本“反射”回受害者的瀏覽器而使受害者的瀏覽器執行相應的腳本。
(2) 存儲型
存儲型XSS是指應用程序通過Web請求獲取不可信賴的數據,在未檢驗數據是否存在XSS代碼的情況下,便將其存入數據庫 當下一次從數據庫中獲取該數據時程序也未對其進行過濾,頁面再次執行XSS代碼持續攻擊用戶。 存儲型XSS漏洞大多出現在留言板、評論區,用戶提交了包含XSS代碼的留言到數據庫,當目標用戶查詢留言時,那些留言的內容會從服務器解析之后加載出來。
(3) DOM型

不與后臺服務器交互數據,也屬于反射型的一種,一種通過dom操作前端輸出的時候產生問題。DOM,是一個平臺和語言都中立的接口,可以使程序和腳本能夠動態訪問和更新文檔的內容、結構以及樣式,DOM-XSS簡單理解就是不與后臺服務器產生數據交互,是一種通過DOM操作前端代碼輸出的時候產生的問題。

跨站腳本攻擊漏洞修復

  1. 輸入過濾。對用戶提交的數據進行有效性驗證,僅接受指定長度范圍內并符合我們期望格式的的內容提交,阻止或者忽略除此外的其他任何數據。
  2. 輸出轉義。在變量輸出到 HTML 頁面時,可以使用編碼或轉義的方式來防御 XSS 攻擊。htmlspecialchars() :把預定義的字符轉換為 HTML 實體。
  3. 使用 HttpOnly 。 HttpOnly 是加在 cookies 上的一個標識,用于告訴瀏覽器不要向客戶端腳本暴露 cookie 。當你在 cookie 上設置 HttpOnly 標識后,瀏覽器就會知會到這是特殊的 cookie ,只能由服務器檢索到,所有來自客戶端腳本的訪問都會被禁止。
  4. 配合 CSP 。 CSP (Content Security Policy)指的是內容安全策略,為了緩解很大一部分潛在的跨站腳本問題,瀏覽器的擴展程序系統引入了內容安全策略。 CSP 本質上是建立白名單,規定了瀏覽器只能夠執行特定來源的代碼,即使存在跨站腳本攻擊漏洞,也不會加載來源不明的第三方腳本。

企業級防御實踐

??開發流程管控??
安全編碼規范:SDL流程嵌入需求評審
自動化掃描:SonarQube檢測未轉義輸出
??縱深防御體系??
前端:CSP+輸入過濾
后端:參數化查詢+WAF規則(如攔截

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

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

相關文章

Accelerate 2025北亞巡展正式啟航!AI智御全球·引領安全新時代

近日&#xff0c;網絡安全行業年度盛會Accelerate 2025北亞巡展正式在深圳啟航&#xff01;智庫專家、產業領袖及Fortinet高管、產品技術團隊和300余位行業客戶齊聚一堂&#xff0c;圍繞“AI智御全球引領安全新時代”主題&#xff0c;共同探討AI時代網絡安全新范式。大會聚焦三…

RAG系統構建之嵌入模型性能優化完整指南

導讀&#xff1a;在企業級RAG系統的實際部署中&#xff0c;您是否遇到過這樣的困擾&#xff1a;嵌入計算成本不斷攀升&#xff0c;API調用頻繁觸及限制&#xff0c;而系統響應速度卻始終達不到用戶期望&#xff1f;這些看似分散的問題&#xff0c;實際上都指向同一個技術核心&a…

python 自動生成不同行高的word

python 自動生成不同行高的word # -*- coding: utf-8 -*- from docx import Document from docx.shared import Cm, Pt, Inches from docx.oxml import OxmlElement from docx.oxml.ns import qn from docx.enum.text import WD_ALIGN_PARAGRAPHclass DynamicTableGenerator:d…

如何訓練意志力

設定清晰的目標 目標需要是具體的&#xff0c;可實現的&#xff0c;有時間限制的。比如不要說“我要鍛煉”&#xff0c;而是改成“每周跑步3次&#xff0c;每次30分鐘”。 從小事開始 起步通常都是困難的&#xff0c;一開始定一個很大很復雜的任務也超出了自己的能力&#x…

FastAPI 依賴注入

依賴注入常用于以下場景&#xff1a; 共享業務邏輯&#xff08;復用相同的代碼邏輯&#xff09; 共享數據庫連接 實現安全、驗證、角色權限 等…… 上述場景均可以使用依賴注入&#xff0c;將代碼重復最小化。 創建依賴項 依賴項就是一個函數&#xff0c;且可以使用與路…

接口冪等性原理與方案總結

文章目錄 接口冪等概念典型場景核心解決方案一鎖二判三更新 方案選型對比 接口冪等概念 定義&#xff1a;無論調用接口多少次&#xff0c;對系統的影響與單次調用一樣 范疇&#xff1a;在后端開發中&#xff0c;通常更關注寫接口的冪等&#xff0c;因為寫接口才會對系統數據造…

【已解決】windows gitbash 出現CondaError: Run ‘conda init‘ before ‘conda activate‘

在 Git Bash 中執行&#xff1a; source /c/Users/你的用戶名/miniconda3/etc/profile.d/conda.sh # 注意填入你自己的路徑 conda init bash關閉并重新打開 Git Bash 終端。測試激活環境&#xff1a; conda activate your_env_name注意事項 要把上述命令中的 你的用戶名 替…

軟件包管理系統的架構與生態機制

文章目錄 前言一、總結二、如何上傳自己的軟件包 前言 在日常軟件開發中&#xff0c;我們經常使用諸如apt install, pip install, npm install之類的命令&#xff0c;但有一個問題是&#xff0c;這些下載命令是從哪里下載的這些軟件包&#xff0c;以及我們是否能上傳自己的代碼…

Java線程池管理最佳實踐(設計模式)

引言 在多線程編程中&#xff0c;線程池是一種非常重要的資源管理工具。合理使用線程池可以顯著提高系統性能&#xff0c;避免頻繁創建和銷毀線程帶來的開銷。今天&#xff0c;我將為大家深入分析一個實用的ThreadPoolManager實現&#xff0c;它來自com.kingdee.eas.util包&am…

4.8.2 利用Spark SQL計算總分與平均分

在本次實戰中&#xff0c;我們的目標是利用Spark SQL計算學生的總分與平均分。首先&#xff0c;我們準備了包含學生成績的數據文件&#xff0c;并將其上傳至HDFS。接著&#xff0c;通過Spark的交互式編程環境&#xff0c;我們讀取了成績文件并將其轉換為結構化的DataFrame。然后…

HTML 文件路徑完全指南:相對路徑、絕對路徑解析與引用技巧

一、為什么必須學會文件路徑&#xff1f;—— 網頁引用資源的 “地址規則” 在 HTML 中&#xff0c;引用圖片、CSS、JS 等外部文件時&#xff0c;必須通過文件路徑告訴瀏覽器資源的位置。路徑錯誤會導致資源無法加載&#xff08;頁面出現 broken image 圖標或樣式丟失&#xf…

keepalived兩臺設備同時出現VIP問題

目錄 問題背景&#xff1a; 日志分析如下&#xff1a; 原因和解決方案總結&#xff1a; 問題背景&#xff1a; keepalived-master和keepalived-slave同時出現了VIP&#xff0c;出現了非對稱路由和雙主現象 日志分析如下&#xff1a; master能夠接受到來自slave的通告消息…

【開源解析】基于PyQt5+Folium的谷歌地圖應用開發:從入門到實戰

&#x1f310;【開源解析】基于PyQt5Folium的谷歌地圖應用開發&#xff1a;從入門到實戰 &#x1f308; 個人主頁&#xff1a;創客白澤 - CSDN博客 &#x1f525; 系列專欄&#xff1a;&#x1f40d;《Python開源項目實戰》 &#x1f4a1; 熱愛不止于代碼&#xff0c;熱情源自每…

篇章五 數據結構——鏈表(一)

目錄 1.ArrayList的缺陷 2. 鏈表 2.1 鏈表的概念及結構 2.2 鏈表結構 1. 單向或者雙向 2.帶頭或者不帶頭 3.循環或者非循環 2.3 鏈表的實現 1.完整代碼 2.圖解 3.顯示方法 4.鏈表大小 5. 鏈表是否存在 key 值 6.頭插法 7.尾插法 8.中間插入 9.刪除key值節點 10.…

數據庫相關面試

數據庫相關面試 Mysql MySQL中的事務隔離級別及其特點 參考&#xff1a;事務的隔離級別&#xff1a;可重復讀 未提交讀(Read Uncommitted)&#xff1a;允許臟讀&#xff0c;也就是可能讀取到其他會話中未提交事務修改的數據 已提交讀(Read Committed)&#xff1a;只能讀取到…

基于Scrapy的天貓商品數據爬取與分析實戰(含API簽名破解與可視化)

基于Scrapy的天貓商品數據爬取與分析實戰&#xff08;含API簽名破解與可視化&#xff09; 本文以華為Mate 60 Pro為例&#xff0c;詳細介紹如何使用Scrapy框架爬取天貓商品數據&#xff0c;涵蓋API簽名破解、反爬應對、數據存儲及可視化全流程&#xff0c;適合爬蟲進階學習者實…

【C++進階篇】哈希表的模擬實現(賦源碼)

這里寫目錄標題 前言一. 開放地址法實現哈希表1.1 閉散列結構定義1.2 構造函數1.3 插入&#xff08;線性探測&#xff09;1.3.1 傳統寫法1.3.2 現代寫法 1.4 查找1.5 刪除 二. 鏈地址法實現哈希表&#xff08;哈希桶&#xff09;2.1 開散列結構定義2.2 構造函數2.3 插入2.4 查找…

07-后端Web實戰(部門管理)

5. 修改部門 對于任何業務的修改功能來說&#xff0c;一般都會分為兩步進行&#xff1a;查詢回顯、修改數據。 5.1 查詢回顯 5.1.1 需求 當我們點擊 "編輯" 的時候&#xff0c;需要根據ID查詢部門數據&#xff0c;然后用于頁面回顯展示。 5.1.2 接口描述 參照參照…

深度解析項目集方向或目標根本性轉變的應對策略 —— 項目集管理實戰指南

在復雜多變的商業環境中&#xff0c;項目集管理面臨著重重挑戰&#xff0c;而項目集方向或目標的根本性轉變無疑是其中最具沖擊力的問題之一。本文將深度剖析這一難題&#xff0c;為項目集管理從業者提供實用、新穎且富有價值的應對策略&#xff0c;助力大家在項目集管理的復雜…

JAVA面試復習知識點

面試中遇到的題目&#xff0c;記錄復習&#xff08;持續更新&#xff09; Java基礎 1.String的最大長度 https://www.cnblogs.com/wupeixuan/p/12187756.html 2.集合 Collection接口的實現&#xff1a; List接口&#xff1a;ArraryList、LinkedList、Vector Set接口&#xff1a…