白帽子講Web安全(第2版)

吳翰清,葉敏

  • 出版商: 電子工業
  • 出版日期: 2023-07-01
  • 售價: $648
  • 貴賓價: 9.5$616
  • 語言: 簡體中文
  • 頁數: 464
  • ISBN: 7121459671
  • ISBN-13: 9787121459672
  • 立即出貨(限量) (庫存=3)

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

商品描述

在當今的數字化時代,數據安全和個人隱私面臨著前所未有的挑戰,各種攻擊技術層出不窮,Web安全依然是最主要的攻防戰場。近10年與Web相關的技術飛速發展,本書第2版更新了前沿安全技術相關的內容,不僅從攻防原理的角度講解了Web安全的各個方面,還介紹了安全開發、安全產品設計、企業安全建設等方面的最佳實踐。Web開發者、安全專業人員以及對Web安全感興趣的讀者都可將本書作為參考指南。

目錄大綱

1 白帽子安全觀 1
1.1 Web安全簡史 1
1.1.1 黑客技術發展歷程 1
1.1.2 Web安全的興起 4
1.2 黑帽子,白帽子 5
1.3 返璞歸真,揭秘安全的本質 6
1.4 破除迷信,沒有銀彈 9
1.5 安全三要素 10
1.6 如何實施安全評估 11
1.6.1 資產等級劃分 11
1.6.2 威脅建模 13
1.6.3 風險分析 14
1.6.4 設計安全方案 15
1.6.5 態勢感知 16
1.7 安全方案的設計原則 18
1.7.1 “默認安全”原則 18
1.7.2 “縱深防禦”原則 19
1.7.3 “數據與代碼分離”原則 21
1.7.4 “隨機性”原則 23
1.8 小結 24

2 HTTP協議與Web應用 26
2.1 HTTP協議 26
2.1.1 HTTP協議簡介 26
2.1.2 HTTP請求 26
2.1.3 HTTP響應 31
2.1.4 HTTP/2和HTTP/3 32
2.1.5 Websocket 34
2.2 Web服務器 35
2.3 Web頁面 36
2.3.1 文檔對象模型(DOM) 36
2.3.2 JavaScript 36
2.4 小結 37
3 瀏覽器安全 38
3.1 同源策略 38
3.2 瀏覽器沙箱 39
3.3 XSS保護 42
3.4 隱私策略 43
3.5 瀏覽器擴展 48
3.6 高速發展的瀏覽器安全 49
3.7 小結 51
4 Cookie和會話安全 53
4.1 Cookie和會話簡介 53
4.2 第一方Cookie和第三方Cookie 54
4.3 Cookie屬性 55
4.3.1 Domain屬性 55
4.3.2 Path屬性 56
4.3.3 Expires屬性 57
4.3.4 HttpOnly屬性 57
4.3.5 Secure屬性 58
4.3.6 SameSite屬性 59
4.3.7 SameParty屬性 61
4.4 安全使用Cookie 62
4.4.1 正確設置屬性值 62
4.4.2 Cookie前綴 62
4.4.3 保密性和完整性 63
4.5 會話安全 64
4.5.1 會話管理 64
4.5.2 固定會話攻擊 66
4.6 小結 67
5 深入同源策略 68
5.1 同源策略詳解 68
5.2 跨域DOM互訪問 72
5.2.1 子域名應用互訪問 72
5.2.2 通過window.name跨域 74
5.2.3 window.postMessage方案 74
5.3 跨域訪問服務端 76
5.3.1 JSONP方案 76
5.3.2 跨域資源共享 77
5.3.3 私有網絡訪問 80
5.3.4 Websocket跨域訪問 82
5.3.5 其他跨域訪問 82
5.4 小結 82
6 跨站腳本攻擊 84
6.1 XSS攻擊簡介 84
6.2 XSS攻擊類型 86
6.2.1 反射型XSS攻擊 86
6.2.2 存儲型XSS攻擊 87
6.2.3 基於DOM的XSS攻擊 88
6.2.4 Self-XSS攻擊 89
6.3 XSS攻擊進階 90
6.3.1 初探XSS Payload 90
6.3.2 強大的XSS Payload 91
6.4 XSS蠕蟲 94
6.5 XSS攻擊技巧 96
6.5.1 基本的變形 96
6.5.2 事件處理程序 96
6.5.3 JavaScript偽協議 97
6.5.4 編碼繞過 98
6.5.5 繞過長度限制 99
6.5.6 使用<base>標簽 101
6.5.7 window.name的妙用 102
6.6 JavaScript框架 102
6.6.1 jQuery 103
6.6.2 Vue.js 103
6.6.3 AngularJS 103
6.7 XSS攻擊的防禦 104
6.7.1 HttpOnly 105
6.7.2 輸入過濾 105
6.7.3 輸出轉義 107
6.8 關於XSS Filter 122
6.9 小結 124
7 跨站請求偽造(CSRF) 125
7.1 CSRF簡介 125
7.2 CSRF詳解 126
7.2.1 CSRF的本質 126
7.2.2 GET和POST請求 127
7.2.3 CSRF蠕蟲 128
7.3 防禦CSRF攻擊 130
7.3.1 驗證碼 130
7.3.2 Referer校驗 130
7.3.3 Cookie的SameSite屬性 131
7.4 Anti-CSRF Token 131
7.4.1 原理 131
7.4.2 使用原則 133
7.5 小結 135
8 點擊劫持 136
8.1 點擊劫持簡介 136
8.2 圖片覆蓋攻擊 139
8.3 拖拽劫持與數據竊取 140
8.4 其他劫持方式 142
8.5 防禦點擊劫持 143
8.5.1 Frame Busting 143
8.5.2 Cookie的SameSite屬性 144
8.5.3 X-Frame-Options 144
8.5.4 CSP: frame-ancestors 145
8.6 小結 145
9 移動Web安全 146
9.1 WebView簡介 146
9.2 WebView對外暴露 147
9.3 Universal XSS 148
9.4 WebView跨域訪問 148
9.5 與本地代碼交互 150
9.6 其他安全問題 151
9.7 小結 151
10 註入攻擊 152
10.1 SQL註入 152
10.1.1 Union註入 153
10.1.2 堆疊註入 153
10.1.3 報錯註入 154
10.2 盲註 154
10.2.1 布爾型盲註 154
10.2.2 延時盲註 155
10.2.3 帶外數據註入 157
10.3 二次註入 158
10.4 SQL註入技巧 158
10.4.1 常見攻擊技巧 158
10.4.2 命令執行 161
10.4.3 攻擊存儲過程 163
10.4.4 編碼問題 164
10.4.5 SQL Column Truncation 166
10.5 防禦SQL註入 166
10.5.1 使用預編譯語句 167
10.5.2 使用存儲過程 168
10.5.3 參數校驗 169
10.5.4 使用安全函數 169
10.6 其他註入攻擊 171
10.6.1 NoSQL註入 171
10.6.2 XML註入 172
10.6.3 代碼註入 175
10.6.4 CRLF註入 183
10.6.5 LDAP註入 184
10.7 小結 185
11 文件操作 186
11.1 上傳和下載 186
11.1.1 上傳和下載漏洞概述 186
11.1.2 路徑解析漏洞 188
11.1.3 文件上傳與下載的安全 189
11.2 對象存儲的安全 190
11.3 路徑穿越(Path Traversal) 192
11.4 文件包含(File Inclusion) 194
11.5 小結 196
12 服務端請求偽造(SSRF) 197
12.1 SSRF攻擊簡介 197
12.2 SSRF漏洞成因 199
12.3 SSRF攻擊進階 199
12.3.1 攻擊內網應用 199
12.3.2 埠掃描 200
12.3.3 攻擊非Web應用 201
12.3.4 繞過技巧 203
12.4 SSRF防禦方案 204
12.5 小結 205
13 身份認證 206
13.1 概述 206
13.2 密碼的安全性 207
13.3 身份認證的方式 210
13.3.1 HTTP認證 210
13.3.2 表單登錄 213
13.3.3 客戶端證書 214
13.3.4 一次性密碼 214
13.3.5 多因素認證 215
13.3.6 FIDO 215
13.4 暴力破解和撞庫 217
13.5 單點登錄 217
13.5.1 OAuth 218
13.5.2 OIDC 221
13.5.3 SAML 221
13.5.4 CAS 223
13.6 小結 224
14 訪問控制 225
14.1 概述 225
14.2 訪問控制模型 227
14.2.1 自主訪問控制 227
14.2.2 基於角色的訪問控制 228
14.2.3 基於屬性的訪問控制 229
14.3 越權訪問漏洞 230
14.3.1 垂直越權訪問 230
14.3.2 水平越權訪問 231
14.4 零信任模型 233
14.4.1 基本原則 234
14.4.2 實現方案 236
14.5 小結 237
15 密碼算法與隨機數 239
15.1 加密、編碼和哈希 239
15.2 安全使用加密算法 240
15.2.1 流加密算法 240
15.2.2 分組加密算法 242
15.2.3 非對稱加密算法 245
15.3 分組填充和Padding Oracle攻擊 246
15.4 安全使用哈希函數 255
15.5 關於彩虹表 257
15.6 安全使用隨機數 259
15.6.1 偽隨機數生成器 260
15.6.2 弱偽隨機數 261
15.6.3 關於隨機數使用的建議 262
15.7 密鑰管理 263
15.8 信息隱藏 265
15.9 HTTPS協議 267
15.9.1 SSL和TLS協議的發展 268
15.9.2 HTTP嚴格傳輸安全(HSTS) 274
15.9.3 公鑰固定 276
15.9.4 證書透明度(Certificate Transparency) 277
15.10 小結 277
16 API安全 279
16.1 API安全概述 279
16.2 常見API架構 280
16.2.1 SOAP 280
16.2.2 REST 280
16.2.3 GraphQL 282
16.3 OpenAPI規範 284
16.4 常見的API漏洞 285
16.5 API安全實踐 289
16.5.1 API發現 289
16.5.2 生命周期管理 290
16.5.3 數據安全 290
16.5.4 攻擊防護 291
16.5.5 日誌和審計 291
16.5.6 威脅檢測 291
16.5.7 使用API網關 292
16.5.8 微服務安全 292
16.6 小結 293
17 業務邏輯安全 294
17.1 賬號安全 294
17.1.1 註冊賬號 294
17.1.2 登錄賬號 296
17.1.3 退出賬號 297
17.1.4 找回密碼 298
17.2 圖形驗證碼 299
17.2.1 驗證邏輯 299
17.2.2 強度 300
17.3 並發場景 301
17.3.1 條件競爭 301
17.3.2 臨時數據 302
17.3.3 支付邏輯缺陷 303
17.4 小結 304
18 開發語言的安全 305
18.1 PHP安全 305
18.1.1 變量覆蓋 305
18.1.2 空字節問題 306
18.1.3 弱類型 307
18.1.4 反序列化 307
18.1.5 安全配置 308
18.2 Java安全 309
18.2.1 Security Manager 309
18.2.2 反射 310
18.2.3 反序列化 312
18.3 Python安全 316
18.3.1 反序列化 316
18.3.2 代碼保護 317
18.4 JavaScript安全 317
18.4.1 第三方JavaScript資源 317
18.4.2 JavaScript框架 318
18.5 Node.js安全 319
18.6 小結 319
19 服務端安全配置 321
19.1 “最小權限”原則 321
19.2 Web服務器安全 323
19.2.1 nginx安全 323
19.2.2 Apache HTTP Server安全 326
19.3 數據庫安全 327
19.4 Web容器安全 329
19.4.1 Tomcat遠程代碼執行 330
19.4.2 Weblogic遠程代碼執行 331
19.5 Web中間件安全 332
19.6 日誌與錯誤信息 334
19.6.1 日誌的記錄和留存 335
19.6.2 敏感信息處理 335
19.6.3 錯誤處理 336
19.7 小結 337
20 代理和CDN安全 338
20.1 正向代理 338
20.2 反向代理 340
20.3 獲取真實IP地址 342
20.4 緩存投毒 343
20.5 請求夾帶攻擊 345
20.6 RangeAMP攻擊 348
20.7 域前置(Domain Fronting) 349
20.8 小結 352
21 應用層拒絕服務攻擊 353
21.1 DDoS簡介 353
21.2 應用層DDoS攻擊 357
21.2.1 CC攻擊 357
21.2.2 限制請求頻率 359
21.2.3 道高一尺,魔高一丈 360
21.3 防禦應用層DDoS攻擊 362
21.3.1 IP威脅情報庫 362
21.3.2 JavaScript校驗 363
21.3.3 客戶端指紋 364
21.3.4 人機校驗 366
21.3.5 訪問行為識別 367
21.4 資源耗盡型攻擊 367
21.4.1 Slowloris攻擊 367
21.4.2 HTTP POST DoS 369
21.4.3 ReDoS 370
21.4.4 HashDoS 373
21.5 小結 374
22 爬蟲對抗 375
22.1 揭秘爬蟲 375
22.1.1 爬蟲的發展 376
22.1.2 行業挑戰 377
22.2 反爬蟲方案 378
22.2.1 客戶端特徵 378
22.2.2 行為分析 379
22.2.3 圖形驗證碼 381
22.2.4 IP信譽 381
22.2.5 代碼保護 382
22.2.6 數據保護 384
22.3 爬蟲對抗 385
22.4 小結 386
23 安全檢測和防禦 387
23.1 Web應用防火牆(WAF) 387
23.1.1 參數解析 389
23.1.2 攻擊檢測 393
23.1.3 日誌分析 395
23.2 RASP 396
23.3 Web後門檢測 401
23.4 小結 405
24 機器學習在安全領域的應用 406
24.1 機器學習概述 406
24.1.1 機器學習模型 407
24.1.2 模型指標 410
24.2 攻擊檢測 411
24.2.1 Web攻擊檢測 411
24.2.2 識別釣魚網站 414
24.3 異常行為檢測 415
24.4 自動化攻擊 417
24.4.1 識別驗證碼 417
24.4.2 破譯密碼 418
24.5 攻擊機器學習模型 420
24.5.1 對抗性攻擊 420
24.5.2 信息竊取 423
24.5.3 模型投毒 423
24.6 小結 424
25 DevSecOps 426
25.1 為什麽需要DevSecOps 426
25.2 DevSecOps原則 429
25.2.1 安全責任共擔 429
25.2.2 安全培訓 430
25.2.3 安全左移 430
25.2.4 默認安全 431
25.2.5 自動化 431
25.3 DevSecOps工具鏈 431
25.3.1 需求分析與設計 432
25.3.2 軟件成分分析 433
25.3.3 安全測試 435
25.3.4 容器安全 439
25.3.5 代碼保護 439
25.3.6 威脅檢測和響應 440
25.4 小結 441