📘 深度概覽
作者背景#
Malcolm McDonald 是資深的 Web 安全工程師與技術作家,擁有多年在 Web 應用程式安全領域的實務經驗。他專注於協助開發者理解並防禦常見的 Web 安全威脅,擅長將複雜的安全概念轉化為開發者容易理解與實踐的具體指引。McDonald 的寫作風格強調實用性,以攻防並重的方式讓讀者同時理解攻擊原理與防禦方法。
完整摘要#
本書以「讓開發者擁有與駭客同等的安全知識」為目標,從基礎概念到具體威脅,建構了 Web 開發者所需的完整安全知識體系。
書的開篇以一個動手實驗切入——指導讀者使用 Kali Linux 和 Metasploit 框架掃描並攻擊自己的網站,展示駭客工具的低門檻與高效率。作者指出,Metasploit 等工具幾分鐘內就能設定完成,任何有網路連線的人都能使用,因此 Web 開發者必須具備相應的防禦知識。
基礎篇涵蓋網際網路運作原理(TCP/IP、DNS、HTTP 協定)、瀏覽器機制(渲染引擎、JavaScript 執行、cookie 管理)、Web 伺服器運作方式(靜態與動態內容、URL 解析、HTTP 回應處理),以及安全的軟體開發生命週期(SDLC)實踐。
威脅篇是全書的核心,系統化介紹了十二類主要安全威脅及其防禦策略:
注入攻擊(Injection Attacks)章節涵蓋 SQL Injection(利用不安全的 SQL 字串建構)、Command Injection(利用不安全的作業系統命令呼叫)、Remote Code Execution(利用反序列化漏洞)和檔案上傳漏洞。防禦措施包括 parameterized statements、ORM 使用、最小權限原則、控制字元轉義,以及將上傳檔案託管在獨立系統上。
跨站腳本攻擊(XSS)章節區分 Stored、Reflected 和 DOM-based 三種類型,介紹 Content Security Policy(CSP)、輸入驗證與輸出編碼等防禦技術。跨站請求偽造(CSRF)章節說明如何利用使用者已認證的 session 發起非預期操作,防禦方式包括 anti-CSRF token 和 SameSite cookie 屬性。
認證破壞章節探討暴力破解、credential stuffing、弱密碼等攻擊手法,以及多因素認證(MFA)、密碼雜湊(bcrypt、scrypt)等防禦措施。Session 劫持章節涵蓋 session fixation、cookie 竊取和 session 預測攻擊,防禦包括 secure/HttpOnly cookie flag 和 session 輪換。
權限管理章節探討水平與垂直權限提升攻擊、目錄遍歷(directory traversal),強調伺服器端的權限驗證不可依賴客戶端。資訊洩漏章節涵蓋錯誤訊息洩漏、HTTP header 洩漏、原始碼暴露等問題。加密章節介紹對稱/非對稱加密、TLS/SSL、憑證管理等基礎知識。
第三方程式碼風險章節討論供應鏈攻擊、過時函式庫的漏洞風險。XML 攻擊章節聚焦 XML External Entity(XXE)注入和 XML Bomb。避免成為攻擊幫兇章節探討開放重導向、釣魚託管等議題。阻斷服務攻擊(DoS)章節涵蓋應用層和網路層的攻擊與防禦。
本書的貢獻與定位#
本書填補了 Web 安全教育中面向開發者(而非安全專家)的實用指南空缺。不同於 OWASP Top 10 等參考文件的簡要列舉,McDonald 為每種威脅提供了攻擊原理剖析、程式碼層級的漏洞範例,以及多層防禦策略的具體實作指引。書中涵蓋 Java、Python、Ruby、PHP 等多種語言的防禦範例,使不同技術棧的開發者都能找到適用的參考。攻擊者視角的切入方式——先理解攻擊原理,再學習防禦策略——讓開發者能建立對安全威脅的直覺判斷能力,而非僅是機械式地套用安全清單。
