縱深防禦
縱深防禦
定義
用多道彼此獨立的防線疊加防護,而非依賴單一機制。核心命題:每一道防線單獨看都有破口,少任何一道都已是漏洞,把多道錯開疊起來才擋得住攻擊。做安全稽核時的對應紀律是「不要抓到一個問題就收手」,要繼續追問「還有什麼該擋沒擋的」。
關鍵數據點(附來源)
- 後台設定入口的四道防線:移除對未登入者開放、一次性通行證(nonce/CSRF)、查身分(capability)、寫入白名單。四道全缺即整站接管;拿掉任一道入口仍有風險,故修補須當成一整組。(ai-code-security-think-like-attacker)
- API 通訊的縱深版本:API Key(你是誰)→ SHA-256 簽章(有沒有被竄改)→ 時間戳(防重送),四關全過才放行。(見 [[三層 API 驗證]],2026-03-18-api-security-design-connection-key)
- 兩個情境的共同骨架:把「驗證」拆成數個各自獨立、各擋一種攻擊的關卡,依序檢查,全過才放行。
- SQL 注入的縱深版本:參數化查詢($wpdb->prepare)只是查詢端的第一道防線,後面還疊著權限檢查、寫入白名單、移除未登入入口。光用 prepare 不等於安全,且 prepare 本身還有「用了卻用錯」的四個破口(見 [[SQL 注入防範]] 與 [[$wpdb SQL 注入審查四規則]])。(wordpress-wpdb-sql-injection-review)
前提與局限性
- 白名單這一道假設「合法輸入可被列舉」,輸入空間爆炸時(富文本、檔案上傳)難窮舉,須改用型別驗證 + 安全輸出。
- 防線項目隨技術棧不同(Web 後端、前端、行動 App、API),但「多道獨立防線疊加」的元規則可遷移。
- 多道防線會增加開發與維護成本(白名單需手動維護、靠人為紀律),是安全與便利的權衡。
衝突標記
(無)
關聯概念
- [[攻擊者思維稽核]]
- [[SQL 注入防範]]
- [[三層 API 驗證]]
- [[重送攻擊防禦]]
- [[通訊平台 Bot 安全設計]]
- [[Zero Trust Access]]