《Web套用安全威脅與防治——基於OWASP Top 10與ESAPI》是2013年1月出版的圖書,作者是王文君、李建蒙。
基本介紹
- 書名:Web套用安全威脅與防治——基於OWASP Top 10與ESAPI
- 作者:王文君、李建蒙
- ISBN:978-7-121-18857-2
- 頁數:480頁
- 定價:69.00元
- 出版時間:2013年1月
- 開本:16開
版權資訊,內容簡介,編輯推薦,內容提要,目錄,
版權資訊
安全技術大系
Web套用安全威脅與防治——基於OWASP Top 10與ESAPI (OWASP中國核心成員傾囊相授 一本OWASP與ESAPI秘笈)
王文君 李建蒙編著
ISBN 978-7-121-18857-2
2013年1月出版
定價:69.00元
480頁
16開
內容簡介
《Web套用安全威脅與防治——基於OWASP Top 10與ESAPI》是一本講解Web套用中最常見的安全風險以及解決方案的實用教材。它以當今公認的安全權威機構OWASP(Open Web Application Security Project)制定的OWASP Top 10為藍本,介紹了十項最嚴重的Web應用程式安全風險,並利用ESAPI(Enterprise Security API)提出了解決方案。
編輯推薦
如何你要了解套用安全,請看OWASP;
如果你要了解OWASP,請看OWASP Top 10;
如果你要了解OWASP Top 10,請看《Web套用安全威脅與防治——基於OWASP Top 10與ESAPI》。
它以淺顯的故事,詳實的理論,易懂的代碼,帶你去遨遊套用安全的世界。
內容提要
本書共有五篇,第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 Cookie20
1.5.1 HTTP Cookie的作用22
1.5.2 HTTP Cookie的缺點23
1.6 HTTP session23
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 Spider63
5.2.5 暴力破解 64
5.2.6 連線埠掃描 65
5.2.7 Fuzzer66
5.2.8 API 66
5.3 WebScrab 67
5.3.1 HTTP代理67
5.3.2 Manual Request 69
5.3.3 Spider70
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 FreeMarker174
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 直接訪問內部URL364
15.3.4 修改參數繞過認證 365
15.3.5 可預測的SessionID365
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
媒體評論
這是一本帶點酷酷的工程師範兒和人文氣質的“硬貨”。作為一名資深IT文藝老人,特別喜歡這種帶著思想氣息卻又有著豐富案例娓娓道來的實用信息安全書,過去卻往往只在國外作者中讀到。正如書中開頭的引子說的那樣:“家有IT,如有一寶。”那么在Web安全日益火爆的今天,你會不會在讀完這本書後的未來也成為傳說中讓我們頂禮膜拜的大牛呢^-^
——IDF威懾防禦實驗室益雲(公益網際網路)社會創新中心聯合創始人萬濤@黑客老鷹
伴隨網際網路的高速發展,基於B/S架構的業務系統對安全要求越來越高,安全從業人員面臨空前的壓力。如何讓安全從業人員快速掌握Web套用安全?本書以詼諧、幽默的語言,精彩、豐富的實例,幫助安全從業人員從端到端理解Web套用安全。不失為近幾年Web套用安全書籍的上佳之作。
——OWASP中國區主席SecZone高級安全顧問 RIP
很樂意看到有人將自身的資深安全積累和OWASP的最佳實踐出版成書,內容嚴謹細緻卻不乏生動。這本信息安全領域的實用手冊將成為銀基安全致力於網際網路安全的參考指導書目之一,我們廣泛的電信、銀行、保險、證券和政府部門等客戶都會從中受益。
——上海銀基信息安全技術有限公司首席技術官胡紹勇(Kurau)
隨著安全訪問控制策略ACL的普及套用,網際網路企業目前面臨的安全風險面主要集中在Web服務層。其中Web套用系統在架構設計、開發編碼過程中是安全漏洞和風險引入的主要階段,而普遍地我們的架構、開發、測試崗位在安全技能與意識上恰恰是相對比較欠缺的。本書詳細介紹了Web安全基礎知識、測試平台與方法,常見漏洞形式與原理,並結合OWASP最佳實踐經驗給出預防建議、設計和編碼原則等。書中舉例生動形象,圖文代碼並茂,步驟歸納清晰。特別推薦給廣大Web開發、測試、安全崗位的朋友們。
—— 中國金山軟體集團信息安全負責人程沖
在網路攻擊愈加複雜,手段日益翻新的今天,Web攻擊依然是大多數攻擊者首選的入侵手段。反思CSDN泄密及新浪微博蠕蟲事件,Web套用的安全突顯其重要性。OWASP作為全球領先的Web套用安全研究團隊,透過本書將Web套用安全的威脅、防禦以及相關的工具進行了詳細的探討和研究。詳盡的操作步驟說明是本書的亮點之一,這些詳實且圖文並茂的內容為逐步深入學習Web套用安全提供了很好的幫助。我衷心希望這本書能夠成為信息安全專業的在校生以及套用安全相關從業人員的學習指導書。
-- 上海交通大學信息安全工程學院施勇(CISSP CISA)