Web 應用程序安全 Web Application Security: Exploitation and Countermeasures for Modern Web Applications

Andrew Hoffman 盧浩,陳新 著

買這商品的人也買了...

商品描述

• 探索困擾當今Web應用的常見漏洞。
• 學習攻擊者進行漏洞利用攻擊所用的基本的黑客技術。
• 構圖和記錄你無法直接訪問的Web應用。
• 開發並部署可以繞過常規防禦機制的、定制的漏洞利用程序。
• 制訂並部署緩解措施,保護你的應用程序免受黑客攻擊。
• 將安全編碼的最佳實踐融入到你的開發生命週期中。
• 獲取實用的技巧,幫助你提高Web應用程序的整體安全性。

作者簡介

Andrew Hoffman

是Salesforce.com的高級安全工程師,負責多個JavaScript、Node.js和OSS團隊的安全工作。
他的專長是DOM和JavaScript安全漏洞深入研究。
他曾與各大瀏覽器廠商,包括TC39和WHATWG(Web Hypertext Application Technology Working Group,
負責設計即將推出的JavaScript和瀏覽器DOM版本的組織)合作過。

目錄大綱

目錄 
前言 .1 
第1 章 軟件安全歷程 .21 
1.1 黑客的起源 . 21 
1.2 Enigma 密碼機,約1930 年 22 
1.3 自動Enigma 密碼破解,約1940 年 26 
1.4 電話“Phreaking”,約1950 年 . 29 
1.5 防Phreaking 技術,約1960 年 31 
1.6 計算機黑客的起源,約1980 年 32 
1.7 互聯網的興起,約2000 年 . 34 
1.8 現時代的黑客,約2015 年之後 36 
1.9 小結 40 

第一部分 偵察 
第2 章 Web 應用偵察簡介 43 
2.1 信息收集 43 
2.2 Web 應用程序構圖 46 
2.3 小結 48 

第3 章 現代Web 應用程序的結構 49 
3.1 現代的與傳統的Web 應用程序 49 
3.2 REST API 52 
3.3 JS 對象標記 55 
3.4 JavaScript. 57 
3.4.1 變量和作用域 58 
3.4.2 函數 61 
3.4.3 上下文 . 62 
3.4.4 原型繼承. 63 
3.4.5 異步模型. 66 
3.4.6 瀏覽器DOM . 69 
3.5 SPA 框架 71 
3.6 認證和授權系統 72 
3.6.1 認證 73 
3.6.2 授權 74 
3.7 Web 服務器 . 74 
3.8 服務器端數據庫 76 
3.9 客戶端數據存儲 77 
3.10 小結 . 78 

第4 章 尋找子域 79 
4.1 單域多應用程序 79 
4.2 瀏覽器內置的網絡分析工具 80 
4.3 公開信息利用 83 
4.3.1 搜索引擎緩存 84 
4.3.2 存檔信息利用 86 
4.3.3 社交媒體快照 88 
4.4 域傳送攻擊 . 92 
4.5 暴力破解子域 94 
4.6 字典攻擊 101 
4.7 小結 . 103 

第5 章 API 分析 105 
5.1 端點探索 105 
5.2 認證機制 109 
5.3 端點的模型 111 
5.3.1 常見模型 111 
5.3.2 特定於應用的模型 112 
5.4 小結 . 114 

第6 章 識別第三方依賴 . 115 
6.1 探測客戶端框架 115 
6.1.1 探測SPA 框架 116 
6.1.2 探測JavaScript 庫 118 
6.1.3 探測CSS 庫 120 
6.2 探測服務器端框架 121 
6.2.1 標頭探測 121 
6.2.2 默認錯誤信息和404 頁面 122 
6.2.3 探測數據庫 . 125 
6.3 小結 . 127 

第7 章 定位應用架構中的薄弱點 128 
7.1 安全架構與不安全架構的標誌 129 
7.2 多層安全機制 . 134 
7.3 採納和重構 135 
7.4 小結 . 137 

第8 章 第一部分總結 139 
第二部分 攻擊 

第9 章 Web 應用入侵簡介 143 
9.1 黑客的心態 143 
9.2 運用偵察 145 

第10 章 XSS 攻擊 147 
10.1 XSS 的發現和利用 148 
10.2 儲存型XSS 152 
10.3 反射型XSS 154 
10.4 DOM 型XSS 157 
10.5 突變型XSS 160 
10.6 小結 162 

第11 章 CSRF 攻擊 . 163 
11.1 查詢參數篡改 164 
11.2 替換GET 的有效載荷 169 
11.3 針對POST 端點的CSRF 170 
11.4 小結 172 

第12 章 XXE 攻擊 173 
12.1 直接型XXE 174 
12.2 間接型XXE 177 
12.3 小結 179 

第13 章 注入攻擊 . 181 
13.1 SQL 注入攻擊 181 
13.2 代碼注入 . 186 
13.3 命令注入 . 191 
13.4 小結 195 

第14 章 DoS 攻擊 196 
14.1 ReDoS(Regex DoS)攻擊 197 
14.2 邏輯DoS 攻擊 . 200 
14.3 DDoS(分佈式DoS)攻擊 204 
14.4 小結 205 

第15 章 第三方依賴漏洞利用 206 
15.1 集成的方法 208 
15.1.1 分支和復制 209 
15.1.2 自託管的應用程序集成 . 210 
15.1.3 源代碼集成 211 
15.2 軟件包管理器 212 
15.2.1 JavaScript 包管理器 . 212 
15.2 2 Java 包管理器 . 214 
15.2.3 其他語言的包管理器 215 
15.3 CVE(公共漏洞和披露)數據庫 216 
15.4 小結 217 

第16 章 第二部分總結 219 
第三部分 防禦 

第17 章 現代Web 應用加固 223 
17.1 防禦性軟件架構 224 
17.2 全面的代碼審查 225 
17.3 漏洞發現 . 225 
17.4 漏洞分析 . 226 
17.5 漏洞管理 . 227 
17.6 回歸測試 . 228 
17.7 緩解策略 . 228 
17.8 應用偵察和攻擊技術 229 

第18 章 安全的應用架構 230 
18.1 分析功能需求 231 
18.2 認證和授權 232 
18.2.1 SSL 和TLS 232 
18.2.2 安全的憑證 234 
18.2.3 散列憑證信息 . 235 
18.2.4 2FA 認證 238 
18.3 PII 和財務數據 239 
18.4 搜索 240 
18.5 小結 240 

第19 章 代碼安全審查 243 
19.1 如何開始代碼審查 . 244 
19.2 原型漏洞與自定義邏輯漏洞 . 245 
19.3 代碼安全審查起步 . 247 
19.4 安全編碼的反面模式 249 
19.4.1 黑名單 250 
19.4.2 模板代碼 251 
19.4.3 默認信任反模式 252 
19.4.4 客戶端/ 服務器分離 252 
19.5 小結 253 

第20 章 漏洞發現 . 255 
20.1 安全自動化 255 
20.1.1 靜態分析 256 
20.1.2 動態分析 258 
20.1.3 漏洞回歸測試 . 259 
20.2 責任披露計劃 262 
20.3 漏洞賞金計劃 263 
20.4 第三方滲透測試 264 
20.5 小結 265 

第21 章 漏洞管理 . 266 
21.1 漏洞重現 . 266 
21.2 漏洞嚴重等級 267 
21.3 通用漏洞評分系統 . 268 
21.3.1 CVSS:基礎評分 . 269 
21.3.2 CVSS:時間評分 . 271 
21.3.3 CVSS:環境評分 . 272 
21.4 高級漏洞評分 273 
21.5 分揀、評分之後 274 
21.6 小結 275 

第22 章 防禦XSS 攻擊 . 276 
22.1 防禦XSS 編碼最佳實踐 . 276 
22.2 淨化用戶輸入 279 
22.2.1 DOM 解析接收器 . 280 
22.2.2 SVG 接收器 . 281 
22.2.3 Blob 接收器 . 281 
22.2.4 超鏈接淨化 282 
22.2.5 HTML 實體編碼 283 
22.3 CSS 284 
22.4 阻止XSS 的CSP 285 
22.4.1 腳本源 285 
22.4.2 Unsafe Eval 和Unsafe Inline 選項 287 
22.4.3 實現CSP 288 
22.5 小結 288 

第23 章 防禦CSRF 攻擊 290 
23.1 標頭驗證 . 290 
23.2 CSRF 令牌 . 292 
23.3 防CRSF 編碼最佳實踐 294 
23.3.1 無狀態GET 請求 294 
23.3.2 應用級CSRF 緩解 296 
23.4 小結 297 

第24 章 防禦XXE 攻擊 . 299 
24.1 評估其他數據格式 . 300 
24.2 高級XXE 風險 301 
24.3 小結 302 

第25 章 防御注入攻擊 303 
25.1 緩解SQL 注入攻擊 303 
25.1.1 SQL 注入檢測 . 304 
25.1.2 預編譯語句 306 
25.1.3 特定於數據庫的防禦 308 
25.2 通用注入防禦 308 
25.2.1 潛在的注入目標 309 
25.2.2 最小權限原則 . 310 
25.2.3 命令白名單化 . 311 
25.3 小結 312 

第26 章 防禦DoS 攻擊 . 314 
26.1 防範Regex DoS 攻擊 315 
26.2 防範邏輯DoS 攻擊 315 
26.3 防範DDoS 攻擊 . 316 
26.4 緩解DDoS 攻擊 . 317 
26.5 小結 318 

第27 章 加固第三方依賴 320 
27.1 評估依賴關係樹 320 
27.1.1 依賴關係樹建模 321 
27.1.2 依賴關係樹實例 322 
27.1.3 自動評估 322 
27.2 安全集成技術 323 
27.2.1 關注點分離 323 
27.2.2 安全包管理 324 
27.3 小結 325 

第28 章 第三部分小結 327 
28.1 軟件安全的歷史 327 
28.2 Web 應用偵察 329 
28.3 攻擊 331 
28.4 防禦 332 

第29 章 總結 . 336 
作者介紹 339 
封面介紹 339