Web 漏洞防護
內容描述
本書以OWASP Top 10 2017 中涉及的漏洞為基礎,系統闡述了常見的Web 漏洞的防護方式。書中首先介紹了漏洞演示平臺及一些常用的安全防護工具,然後對OWASP Top 10 2017 中涉及的漏洞防護方式及防護工具進行了說明,接著介紹瞭如何通過HTTP 響應頭提升Web 客戶端自身對漏洞的防護能力,最後討論了在無法更改應用程序源碼的情況下,如何對應用進行外層的WAF 防護。
目錄大綱
第1章使用工具介紹1
1.1 WebGoat 1
1.2 ESAPI 5
1.3 Apache Shiro 8
1.3.1 Apache Shiro的特徵8
1.3.2 Apache Shiro的核心概念9
1.3.3與Spring集成12
1.4 Spring Security 15
1.5 OWASP Top 10 17
第2章SQL注入防護19
2.1 SQL注入介紹19
2.2 SQL注入分類20
2.2.1按參數類型分類20
2.2.2按註入位置分類20
2.2.3按結果反饋分類20
2.2.4其他類型21
2.3實例講解21
2.3.1字符型注入22
2.3.2數字型注入22
2.3.3聯合查詢注入及堆查詢注入23
2.3.4盲注入24
2.4檢測SQL注入25
2.5防護方案26
2.5.1漏洞實例27
2.5.2預編譯與參數綁定28
2.5.3白名單驗證29
2.5.4輸入編碼30
2.5.5 MyBatis安全使用32
2.6小結. 33
第3章其他注入防護34
3.1命令注入防護34
3.2 XML注入防護34
3.3 XPATH注入防護38
3.4 LDAP注入防護39
3.5 JPA注入防護40
3.6小結43
第4章認證防護44
4.1認證缺陷44
4.2認證防護44
4.2.1用戶名及密碼設置45
4.2.2忘記密碼46
4.2.3憑證存儲47
4.2.4密碼失竊48
4.2.5其他安全防護49
4.3會話管理安全50
4.3 .1會話ID的屬性51
4.3.2會話管理的實現52
4.3.3 Cookie 53
4.3.4會話ID的注意事項54
4.3.5會話過期55
4.3.6會話管理及其他客戶端防禦57
4.3.7會話攻擊檢測58
4.3.8會話管理的WAF保護59
4.4防護工具59
4.4.1 Argon2密碼散列59
4.4.2 Apache Shiro認證63
4.4.3 Apache Shiro會話管理65
4.5小結68
第5章數據洩露防護69
5.1傳輸層安全防護69
5.1.1 SSL/TLS注意事項70
5.1. 2其他注意事項75
5.1.3傳輸層安全檢測工具75
5.2數據加密存儲77
5.2.1密碼學簡史78
5.2.2加密模式及填充模式83
5.2.3雜湊函數及數據完整性保護88
5.2.4加解密使用規範90
5.3安全數據共享104
5.3.1數據倉庫的構建104
5.3.2數據倉庫的保護105
5.3.3數據倉庫的管理106
5.4小結106
第6章XXE防護107
6.1 XML介紹107
6.2 XXE攻擊方式及實例介紹109
6.2.1內部XXE實例110
6.2.2外部XXE實例111
6.3檢測XXE 112
6.4 XXE防護113
6.4.1 DOM 113
6.4.2 SAX 116
6.4.3其他117
6.5小結117
第7章訪問控制防護118
7.1訪問控制的分類118
7.2常見問題119
7.2.1不安全對象的直接引用119
7.2.2功能級訪問控制缺失120
7.2.3跨域資源共享的錯誤配置121
7.3工具防護123
7.3.1 Apache Shiro訪問控制123
7.3.2 ESAPI隨機化對象引用126
7.3.3 Spring Security CORS配置127
7.4小結128
第8章安全配置129
第9章XSS防護131
9.1 XSS分類131
9.1.1反射型XSS 132
9.1.2 DOM型XSS 134
9.1.3存儲型XSS 136
9.1.4其他分類137
9.2檢測XSS 138
9.3 XSS防護方法139
9.3 .1反射型XSS和存儲型XSS的防護140
9.3.2 DOM型XSS防護143
9.4防護工具144
9.4.1 OWASP Java Encoder 144
9.4.2 OWASP Java HTML Sanitizer 149
9.4.3 AnjularJS SCE 158
9.4.4 ESAPI4JS 160
9.4.5 jQuery Encoder 164
9.5小結167
第10章反序列化漏洞防護168
10.1 Java的序列化與反序列化168
10.1.1序列化168
10.1.2反序列化169
10.1.3自定義序列化與反序列化170
10.1.4 Java反序列化漏洞171
10.1.5其他反序列化漏洞175
10.2檢測反序列化漏洞178
10.3反序列化漏洞的防護179
10.4防護工具180
10.4.1自定義工具180
10.4.2 SerialKiller 181
10.4.3 contra-rO0 183
10.5小結185
第11章組件缺陷的檢測186
11.1潛在缺陷186
11.2檢測缺陷組件186
11.2.1 Retire.js 187
11.2.2 OWASP Dependency Check 190
11.2.3 Sonatype AHC 193
11.3小結196
第12章跨站點請求偽造防護197
12.1 CSRF分類197
12.1.1 GET型CSRF 197
12.1.2 POST型CSRF 198
12.1.3 CSRF實例198
12.1.4 CSRF結合XSS 200
12.2檢測CSRF 202
12.3 CSRF防護202
12.3.1不wan全的防護方式203
12.3.2正確的防護方式204
12.4防護工具209
12.4.1自定義防護工具210
12.4.2 Spring Security防護CSRF 215
12.4.3前後端分離216
12.5小結217
第13章輸入驗證218
13.1輸入驗證的方式218
13.2 ESAPI輸入驗證218
第14章HTTP安全響應頭222
14.1安全響應頭介紹222
14.1.1 HSTS 222
14.1.2 HPKP 223
14.1.3 X-Frame-Options 223
14.1.4 X-XSS-Protection 224
14.1.5 X-Content-Type-Options 224
14.1.6 Content-Security-Policy 224
14.1. 7 Referrer-Policy 226
14.1.8 Expect-CT 226
14.1.9 X-Permitted-Cross-Domain-Policies 226
14.1.10 Cache-Control 228
14.2 HTTP安全頭檢測228
14.2.1命令行檢測工具228
14.2.2在線檢測工具229
14.2.3插件檢測工具230
14.3安全響應頭設置建議231
14.3.1知ming網站實例231
14.3.2設置建議233
14.4配置安全響應頭233
14.4.1 Spring Security統一配置233
14.4.2 http_hardening配置安全響應頭237
14.4.3服務器配置文件配置安全響應頭238
14.5小結238
第15章WAF防護239
15.1 ModSecurity 239
15.1.1編譯與導入240
15.1.2配置ModSecurity 241
15.1.3 ModSecurity測試244
15.2規則解析245
15.2.1指令246
15.2.2處理階段247
15.2.3變量247
15.2. 4轉換函數249
15.2.5行為250
15.2.6操作符253
15.3 OWASP ModSecurity CRS 255
15.3.1 CRS導入255
15.3.2 CRS規則文件257
15.4防護測試259
15.4.1 DVWA環境搭建259
15.4.2 SQL注入測試261
15.4.3命令注入測試264
15.4.4 XSS測試267
15.4.5文件包含測試272
15.4.6文件上傳測試274
15.5小結277
參考文獻278
作者介紹
李建熠,畢業於北京郵電大學,安全從業者及愛好者,曾任職於美團點評,參與過美團點評安全從0到1的構建。