SQL注入與XSS攻防解析(安全防御指南)
一、SQL注入基礎(防御視角)
??1. 簡介??
SQL注入是一種通過構造非預期SQL語句操縱數據庫的攻擊技術。作為開發者,需重點關注輸入驗證與查詢安全,建立全流量監測機制,識別異常參數變形。
??2. 原理剖析??
當應用程序未對用戶輸入充分驗證時,攻擊者可通過拼接額外SQL指令繞過驗證或竊取數據。
??防御重點??:
監控SQL日志中的非常規語法
使用預編譯語句隔離代碼與數據
??3. 危害等級??
高風險:數據泄露、權限繞過、文件系統操作
防御優先級:需在開發階段嵌入安全機制
??4. 分類與防護
??
二、SQL注入防御關鍵技術
??輸入驗證規則??
數字字段:正則匹配1+$
字符串字段:過濾’";<>等特殊符號
白名單機制:用戶名僅允許字母數字(2+$)
數據庫防火墻配置??
攔截特征:UNION SELECT、SLEEP()、BENCHMARK()
權限控制:應用賬號禁用FILE/EXECUTE權限
盲注類型與防御對比
一、XSS漏洞核心防御
XSS基礎
跨站腳本攻擊簡稱XSS,是指惡意攻擊者往Web頁面里插入惡意代碼,當受害者的瀏覽器加載網站時代碼就會執行。跨站點腳本是一種客戶端代碼注入攻擊。
成因
由于服務器對輸入和輸出沒有做嚴格的驗證,導致攻擊者構造的字符輸出到前端時被瀏覽器執行,當作有效代碼解析執行從而產生危害。
危害
- 釣魚欺騙:最典型的就是利用目標網站的反射型跨站腳本漏洞將目標網站重定向到釣魚網站,或者注入釣魚 JavaScript 以監控目標網站的表單輸入,甚至發起基于 DHTML 更高級的釣魚攻擊方式。
- 網站掛馬:跨站時利用 IFrame 嵌入隱藏的惡意網站或者將被攻擊者定向到惡意網站上,或者彈出惡意網站窗口等方式都可以進行掛馬攻擊。
- 身份盜用:Cookie 是用戶對于特定網站的身份驗證標志,XSS 可以盜取到用戶的 Cookie,從而利用該 Cookie 盜取用戶對該網站的操作權限。如果一個網站管理員用戶 Cookie 被竊取,將會對網站引發巨大的危害。
- 盜取網站用戶信息:當能夠竊取到用戶 Cookie 從而獲取到用戶身份使,攻擊者可以獲取到用戶對網站的操作權限,從而查看用戶隱私信息。
- 垃圾信息發送:比如在 SNS 社區中,利用 XSS 漏洞借用被攻擊者的身份發送大量的垃圾信息給特定的目標群。
- 劫持用戶 Web 行為:一些高級的 XSS 攻擊甚至可以劫持用戶的 Web 行為,監視用戶的瀏覽歷史,發送與接收的數據等等。
- XSS 蠕蟲:XSS 蠕蟲可以用來打廣告、刷流量、掛馬、惡作劇、破壞網上數據、實施 DDoS 攻擊等。
分類
(1) 反射型
反射型XSS,又稱非持久型XSS,攻擊相對于受害者而言是一次性的 具體表現在受害者點擊了含有的惡意JavaScript腳本的url,惡意代碼并沒有保存在目標網站,而Web應用程序只是不加處理的把該惡意腳本“反射”回受害者的瀏覽器而使受害者的瀏覽器執行相應的腳本。
(2) 存儲型
存儲型XSS是指應用程序通過Web請求獲取不可信賴的數據,在未檢驗數據是否存在XSS代碼的情況下,便將其存入數據庫 當下一次從數據庫中獲取該數據時程序也未對其進行過濾,頁面再次執行XSS代碼持續攻擊用戶。 存儲型XSS漏洞大多出現在留言板、評論區,用戶提交了包含XSS代碼的留言到數據庫,當目標用戶查詢留言時,那些留言的內容會從服務器解析之后加載出來。
(3) DOM型
不與后臺服務器交互數據,也屬于反射型的一種,一種通過dom操作前端輸出的時候產生問題。DOM,是一個平臺和語言都中立的接口,可以使程序和腳本能夠動態訪問和更新文檔的內容、結構以及樣式,DOM-XSS簡單理解就是不與后臺服務器產生數據交互,是一種通過DOM操作前端代碼輸出的時候產生的問題。
跨站腳本攻擊漏洞修復
- 輸入過濾。對用戶提交的數據進行有效性驗證,僅接受指定長度范圍內并符合我們期望格式的的內容提交,阻止或者忽略除此外的其他任何數據。
- 輸出轉義。在變量輸出到 HTML 頁面時,可以使用編碼或轉義的方式來防御 XSS 攻擊。htmlspecialchars() :把預定義的字符轉換為 HTML 實體。
- 使用 HttpOnly 。 HttpOnly 是加在 cookies 上的一個標識,用于告訴瀏覽器不要向客戶端腳本暴露 cookie 。當你在 cookie 上設置 HttpOnly 標識后,瀏覽器就會知會到這是特殊的 cookie ,只能由服務器檢索到,所有來自客戶端腳本的訪問都會被禁止。
- 配合 CSP 。 CSP (Content Security Policy)指的是內容安全策略,為了緩解很大一部分潛在的跨站腳本問題,瀏覽器的擴展程序系統引入了內容安全策略。 CSP 本質上是建立白名單,規定了瀏覽器只能夠執行特定來源的代碼,即使存在跨站腳本攻擊漏洞,也不會加載來源不明的第三方腳本。
企業級防御實踐
??開發流程管控??
安全編碼規范:SDL流程嵌入需求評審
自動化掃描:SonarQube檢測未轉義輸出
??縱深防御體系??
前端:CSP+輸入過濾
后端:參數化查詢+WAF規則(如攔截