Web套用安全威脅與防治(Web套用安全威脅與防治——基於OWASP Top 10與ESAPI)

Web套用安全威脅與防治

Web套用安全威脅與防治——基於OWASP Top 10與ESAPI一般指本詞條

《Web套用安全威脅與防治》,作者:王文君 李建蒙 編著,本書是一本講解Web套用中最常見的安全風險以及解決方案的實用教材。它以當今公認的安全權威機構OWASP(Open Web Application Security Project)制定的OWASP Top 10為藍本,介紹了十項最嚴重的Web應用程式安全風險,並利用ESAPI(Enterprise Security API)提出了解決方案。本書共有五篇,第1篇通過幾個故事引領讀者進入安全的世界;第2篇是基礎知識篇,讀者可以了解基本的Web套用安全的技術和知識;第3篇介紹了常用的安全測試和掃描工具;第4篇介紹了各種威脅以及測試和解決方案;第5篇在前幾篇的基礎上,總結在設計和編碼過程中的安全原則。

基本介紹

  • 作者:王文君  李建蒙 編著
  • ISBN:9787121188572
  • 頁數:466
  • 定價:69.00元
  • 出版社:電子工業出版社
  • 出版時間:2013-1
  • 副標題:Web套用安全威脅與防治
內容介紹,作品目錄,

內容介紹

容提要
本書是一本講解Web套用中最常見的安全風險以及解決方案的實用教材。它以當今公認的安全權威機構OWASP(Open Web Application Security Project)制定的OWASP Top 10為藍本,介紹了十項最嚴重的Web應用程式安全風險,並利用ESAPI(Enterprise Security API)提出了解決方案。本書共有五篇,第1篇通過幾個故事引領讀者進入安全的世界;第2篇是基礎知識篇,讀者可以了解基本的Web套用安全的技術和知識;第3篇介紹了常用的安全測試和掃描工具;第4篇介紹了各種威脅以及測試和解決方案;第5篇在前幾篇的基礎上,總結在設計和編碼過程中的安全原則。
本書各章以一個生動的小故事或者實例開頭,讓讀者快速了解其中的安全問題,然後分析其產生的原因和測試方法並提出有效的解決方案,最後列出處理相關問題的檢查列表,幫助讀者在以後的工作和學習中更好地理解和處理類似的問題。讀完本書之後,相信讀者可以將學過的內容套用到Web套用安全設計、開發、測試中,提高Web應用程式的安全,也可以很有信心地向客戶熟練地講解Web套用安全威脅和攻防,並在自己的事業發展中有更多的收穫。
本書適用於Web開發人員、設計人員、測試人員、架構師、項目經理、安全諮詢顧問等。本書也可以作為對Web套用安全有興趣的高校學生的教材,是一本實用的講解Web套用安全的教材和使用手冊。

作品目錄

第1篇 引子
故事一:家有一IT,如有一寶 2
故事二:微博上的蠕蟲 3
故事三:明文密碼 5
故事四:IT青年VS禪師 5
第2篇 基礎篇
第1章 Web套用技術 8
1.1 HTTP簡介 8
1.2 HTTPS簡介 10
1.3 URI 11
1.3.1 URL 11
1.3.2 URI/URL/URN 12
1.3.3 URI比較 13
1.4 HTTP訊息 13
1.4.1 HTTP方法 14
1.4.2 HTTP狀態碼 19
1.5 HTTP Cookie 20
1.5.1 HTTP Cookie的作用 22
1.5.2 HTTP Cookie的缺點 23
1.6 HTTP session 23
1.7 HTTP的安全 24
第2章 OWASP 27
2.1 OWASP簡介 27
2.2 OWASP風險評估方法 28
2.3 OWASP Top 10 34
2.4 ESAPI(Enterprise Security API) 35
第3篇 工具篇
第3章 Web伺服器工具簡介 38
3.1 Apache 38
3.2 其他Web伺服器 39
第4章 Web瀏覽器以及調試工具 42
4.1 瀏覽器簡介 42
4.1.1 基本功能 42
4.1.2 主流瀏覽器 43
4.1.3 瀏覽器核心 44
4.2 開發調試工具 45
第5章 滲透測試工具 47
5.1 Fiddler 47
5.1.1 工作原理 47
5.1.2 如何捕捉HTTPS會話 48
5.1.3 Fiddler功能介紹 49
5.1.4 Fiddler擴展功能 56
5.1.5 Fiddler第三方擴展功能 56
5.2 ZAP 58
5.2.1 斷點調試 60
5.2.2 編碼/解碼 61
5.2.3 主動掃描 62
5.2.4 Spider 63
5.2.5 暴力破解 64
5.2.6 連線埠掃描 65
5.2.7 Fuzzer 66
5.2.8 API 66
5.3 WebScrab 67
5.3.1 HTTP代理 67
5.3.2 Manual Request 69
5.3.3 Spider 70
5.3.4 Session ID分析 71
5.3.5 Bean Shell的支持 71
5.3.6 Web編碼和解碼 73
第6章 掃描工具簡介 74
6.1 萬能的掃描工具——WebInspect 74
6.1.1 引言 74
6.1.2 WebInspect特性 74
6.1.3 環境準備 74
6.1.4 HP WebInspect總覽 76
6.1.5 Web網站測試 79
6.1.6 企業測試 86
6.1.7 生成報告 88
6.2 開源掃描工具——w3af 91
6.2.1 w3af概述 91
6.2.2 w3af環境配置 92
6.2.3 w3af使用示例 93
6.3 被動掃描的利器——Ratproxy 94
6.3.1 Ratproxy概述 94
6.3.2 Ratproxy環境配置 95
6.3.3 Ratproxy運行 96
第7章 漏洞學習網站 98
7.1 WebGoat 98
7.2 DVWA 99
7.3 其他的漏洞學習網站 99
第4篇 攻防篇
第8章 代碼注入 102
8.1 注入的分類 104
8.1.1 OS命令注入 104
8.1.2 XPath注入 109
8.1.3 LDAP注入 114
8.1.4 SQL注入 118
8.1.5 JSON注入 131
8.1.6 URL參數注入 133
8.2 OWASP ESAPI與注入問題的預防 135
8.2.1 命令注入的ESAPI預防 135
8.2.2 XPath注入的ESAPI預防 138
8.2.3 LDAP注入的ESAPI預防 138
8.2.4 SQL注入的ESAPI預防 141
8.2.5 其他注入的ESAPI預防 143
8.3 注入預防檢查列表 143
8.4 小結 144
第9章 跨站腳本(XSS) 146
9.1 XSS簡介 146
9.2 XSS分類 146
9.2.1 反射式XSS 146
9.2.2 存儲式XSS 148
9.2.3 基於DOM的XSS 149
9.2.4 XSS另一種分類法 151
9.3 XSS危害 154
9.4 XSS檢測 156
9.4.1 手動檢測 156
9.4.2 半自動檢測 158
9.4.3 全自動檢測 158
9.5 XSS的預防 159
9.5.1 一刀切 159
9.5.2 在伺服器端預防 160
9.5.3 在客戶端預防 168
9.5.4 富文本框的XSS預防措施 170
9.5.5 CSS 172
9.5.6 FreeMarker 174
9.5.7 OWASP ESAPI與XSS的預防 177
9.6 XSS檢查列表 183
9.7 小結 184
第10章 失效的身份認證和會話管理 185
10.1 身份認證和會話管理簡介 185
10.2 誰動了我的琴弦——會話劫持 186
10.3 請君入甕——會話固定 188
10.4 我很含蓄——非直接會話攻擊 191
10.5 如何測試 199
10.5.1 會話固定測試 199
10.5.2 用Web Scrab分析會話ID 200
10.6 如何預防會話攻擊 202
10.6.1 如何防治固定會話 202
10.6.2 保護你的會話令牌 204
10.7 身份驗證 208
10.7.1 雙因子認證流程圖 209
10.7.2 雙因子認證原理說明 210
10.7.3 隱藏在QR Code里的秘密 211
10.7.4 如何在伺服器端實現雙因子認證 212
10.7.5 我沒有智慧型手機怎么辦 216
10.8 身份認證設計的基本準則 216
10.8.1 密碼長度和複雜性策略 216
10.8.2 實現一個安全的密碼恢復策略 217
10.8.3 重要的操作應通過HTTPS傳輸 217
10.8.4 認證錯誤信息以及賬戶鎖定 219
10.9 檢查列表 219
10.9.1 身份驗證和密碼管理檢查列表 219
10.9.2 會話管理檢查列表 220
10.10 小結 221
第11章 不安全的直接對象引用 222
11.1 坐一望二——直接對象引用 222
11.2 不安全直接對象引用的危害 224
11.3 其他可能的不安全直接對象引用 224
11.4 不安全直接對象引用的預防 225
11.5 如何使用OWASP ESAPI預防 227
11.6 直接對象引用檢查列表 230
11.7 小結 230
第12章 跨站請求偽造(CSRF) 232
12.1 CSRF簡介 232
12.2 誰動了我的乳酪 232
12.3 跨站請求偽造的攻擊原理 233
12.4 剝繭抽絲見真相 235
12.5 其他可能的攻擊場景 236
12.5.1 家用路由器被CSRF攻擊 236
12.5.2 別以為用POST你就躲過了CSRF 238
12.5.3 寫一個自己的CSRF Redirector 241
12.5.4 利用重定向欺騙老實人 243
12.6 跨站請求偽造的檢測 245
12.6.1 手工檢測 245
12.6.2 半自動CSRFTester 246
12.7 跨站請求偽造的預防 250
12.7.1 用戶需要知道的一些小技巧 250
12.7.2 增加一些確認操作 250
12.7.3 重新認證 250
12.7.4 加入驗證碼(CAPTCHA) 250
12.7.5 ESAPI解決CSRF 250
12.7.6 CSRFGuard 256
12.8 CSRF檢查列表 260
12.9 小結 261
第13章 安全配置錯誤 262
13.1 不能說的秘密——Google hacking 262
13.2 Tomcat那些事 264
13.3 安全配置錯誤的檢測與預防 264
13.3.1 系統配置 264
13.3.2 Web套用伺服器的配置 268
13.3.3 資料庫 282
13.3.4 日誌配置 284
13.3.5 協定 285
13.3.6 開發相關的安全配置 291
13.3.7 編譯器的安全配置 302
13.4 安全配置檢查列表 305
13.5 小結 307
第14章 不安全的加密存儲 308
14.1 關於加密 310
14.1.1 加密算法簡介 310
14.1.2 加密算法作用 312
14.1.3 加密分類 313
14.2 加密數據分類 314
14.3 加密數據保護 315
14.3.1 密碼的存儲與保護 315
14.3.2 重要信息的保護 323
14.3.3 密鑰的管理 336
14.3.4 數據的完整性 339
14.3.5 雲系統存儲安全 342
14.3.6 數據保護的常犯錯誤 343
14.4 如何檢測加密存儲數據的安全性 344
14.4.1 審查加密內容 344
14.4.2 已知答案測試(Known Answer Test) 344
14.4.3 自發明加密算法的檢測 345
14.4.4 AES加密算法的測試 345
14.4.5 代碼審查 346
14.5 如何預防不安全的加密存儲的數據 347
14.6 OWASP ESAPI與加密存儲 348
14.6.1 OWASP ESAPI與隨機數 353
14.6.2 OWASP ESAPI 與FIPS 140-2 354
14.7 加密存儲檢查列表 355
14.8 小結 355
第15章 沒有限制的URL訪問 357
15.1 掩耳盜鈴——隱藏(Disable)頁面按鈕 357
15.2 許可權認證模型 358
15.2.1 自主型訪問控制 360
15.2.2 強制型訪問控制 360
15.2.3 基於角色的訪問控制 361
15.3 繞過認證 363
15.3.1 網路嗅探 364
15.3.2 默認或者可猜測用戶賬號 364
15.3.3 直接訪問內部URL 364
15.3.4 修改參數繞過認證 365
15.3.5 可預測的SessionID 365
15.3.6 注入問題 365
15.3.7 CSRF 365
15.3.8 繞過認證小結 366
15.4 繞過授權驗證 367
15.4.1 水平越權 368
15.4.2 垂直越權 369
15.5 檔案上傳與下載 373
15.5.1 檔案上傳 373
15.5.2 檔案下載和路徑遍歷 377
15.6 靜態資源 382
15.7 後台組件之間的認證 383
15.8 SSO 385
15.9 OWASP ESAPI與授權 386
15.9.1 AccessController的實現 387
15.9.2 一個AccessController的代碼示例 390
15.9.3 我們還需要做些什麼 391
15.10 訪問控制檢查列表 393
15.11 小結 393
第16章 傳輸層保護不足 395
16.1 臥底的故事——對稱加密和非對稱加密 395
16.2 明文傳輸問題 396
16.3 有什麼危害 398
16.3.1 會話劫持 398
16.3.2 中間人攻擊 399
16.4 預防措施 399
16.4.1 密鑰交換算法 400
16.4.2 對稱加密和非對稱加密結合 401
16.4.3 SSL/TLS 406
16.5 檢查列表 423
16.6 小結 423
第17章 未驗證的重定向和轉發 425
17.1 三角借貸的故事——轉發和重定向 425
17.1.1 URL轉發 425
17.1.2 URL重定向 426
17.1.3 轉發與重定向的區別 429
17.1.4 URL 重定向的實現方式 430
17.2 危害 438
17.3 如何檢測 439
17.4 如何預防 440
17.4.1 OWASP ESAPI與預防 441
17.5 重定向和轉發檢查列表 443
17.6 小結 443
第5篇 安全設計、編碼十大原則
第18章 安全設計十大原則 448
設計原則1——簡單易懂 448
設計原則2——最小特權 448
設計原則3——故障安全化 450
設計原則4——保護最薄弱環節 451
設計原則5——提供深度防禦 452
設計原則6——分隔 453
設計原則7——總體調節 454
設計原則8——默認不信任 454
設計原則9——保護隱私 455
設計原則10——公開設計,不要假設隱藏秘密就是安全 455
第19章 安全編碼十大原則 457
編碼原則1——保持簡單 457
編碼原則2——驗證輸入 458
編碼原則3——注意編譯器告警 459
編碼原則4——框架和設計要符合安全策略 459
編碼原則5——默認拒絕 460
編碼原則6——堅持最小許可權原則 462
編碼原則7——淨化傳送到其他系統的數據 463
編碼原則8——深度預防 464
編碼原則9——使用有效的質量保證技術 464
編碼原則10——採用一個安全編碼規範 465

相關詞條

熱門詞條

聯絡我們