縱深防禦

概念

縱深防禦

定義

用多道彼此獨立的防線疊加防護,而非依賴單一機制。核心命題:每一道防線單獨看都有破口,少任何一道都已是漏洞,把多道錯開疊起來才擋得住攻擊。做安全稽核時的對應紀律是「不要抓到一個問題就收手」,要繼續追問「還有什麼該擋沒擋的」。

關鍵數據點(附來源)

  • 後台設定入口的四道防線:移除對未登入者開放、一次性通行證(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]]