iT邦幫忙

2026 iThome 鐵人賽

DAY 11
0
Security

嘗試使用OWASP ZAP與DVWA探索常見 Web 漏洞系列 第 11 篇

Web資安觀念篇:常見 Web 漏洞總整理與防護金字塔

  • 分享至 

  • xImage
  •  

在連續實作了 Command Injection、SQL Injection、XSS(Reflected & Stored)以及 CSRF 後,我們已經掌握了 Web 開發中最常見的幾大核心漏洞。今天不進行任何程式實作,我們從「攻擊者的思維」切回「防禦者的視角」,將這五天學到的漏洞進行橫向對比,並建立一套完整的 Web 安全防禦框架。

  • 漏洞橫向對比表

1.Command Injection:

核心成因:後端直接將使用者輸入拼接到作業系統指令中執行。

攻擊影響:攻擊者可執行任意系統指令,直接取得伺服器控制權。

關鍵防禦:盡量避免呼叫OS指令,若必須使用則實施嚴格的白名單過濾或參數轉義。

2.SQL Injection

核心成因:後端直接將使用者輸入拼接到SQL查詢字串中,改變了原本的SQL語法結構。

攻擊影響:繞過身分驗證、盜取、篡改甚至刪除資料庫內的所有資料。

關鍵防禦:強制使用預編譯查詢,將指令與資料徹底分離。

  1. Reflected XSS

核心成因:後端接收請求參數後,未經過濾與轉義就直接「反射」渲染回網頁上。

攻擊影響:一次性攻擊,攻擊者可誘騙受害者點擊連結,藉此竊取Cookie或跳轉至惡意網站。

關鍵防禦:進行上下文相關的 HTML 實體轉義與設定CSP策略。

  1. Stored XSS

核心成因:惡意腳本被寫入資料庫(如留言板),每次頁面載入時都會從資料庫讀取並渲染。

攻擊影響:持久性危害,所有造訪該頁面的正常使用者都會自動「中招」,常用於大規模帳號劫持。

關鍵防禦:資料輸出時進行HTML轉義、限制輸入長度與格式,並啟用HttpOnly Cookie。

  1. CSRF

核心成因:伺服器過度信任瀏覽器自動帶上的Cookie/Session,未驗證請求是否真的來自使用者本人在該頁面的主動操作。

攻擊影響:冒充已登入的使用者發送敏感請求(如悄悄修改密碼或進行資金轉帳)。

關鍵防禦:導入Anti-CSRF Token、設定Cookie的SameSite屬性,並在敏感操作加上二次驗證。

  • 三層式安全防禦架構(防禦金字塔)

要有效防止上述漏洞,開發團隊不能只靠單點防禦,而是要建立多層次的防禦機制

  1. 輸入層:嚴格的輸入驗證(Input Validation)

原則:永遠不要信任使用者的任何輸入。
作法:採用白名單驗證優於黑名單。例如限制欄位只能輸入數字、IP格式或特定長度,從源頭阻絕異常字元。

  1. 處理與輸出層:語法隔離與上下文轉義

語法隔離:在資料庫操作時,強制使用預編譯查詢,將「指令」與「資料」徹底分離,這是根治SQL Injection 的唯一解法。
上下文轉義:在將資料印到HTML頁面時,將所有特殊符號轉義為HTML實體,防止瀏覽器誤認為腳本。

  1. 環境與機制層:縱深防禦(Defense in Depth)

即便程式碼不小心留下漏洞,適當的安全機制依然能阻斷攻擊:

HttpOnly Cookie:防止 XSS 腳本讀取敏感Session ID。

SameSite=Strict/Lax Cookie:阻斷跨站請求時自動帶上Cookie,大幅降低CSRF危害。

Anti-CSRF Token:確保每個敏感請求都經過使用者主動認證。

Content Security Policy (CSP):限制網頁只能執行白名單來源的JavaScript,封鎖未授權的內聯腳本。


上一篇
DVWA 實作:CSRF(跨站請求偽造)原理與攻防
下一篇
Web 資安觀念篇:15 個常見 Web 漏洞與防禦快問快答
系列文
嘗試使用OWASP ZAP與DVWA探索常見 Web 漏洞 共 18 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言