编辑推荐
从原理到对策,针对不同场景进行多角度漏洞分析
以OWASPTOP102017中涉及的漏洞为基础,阐述了常见Web漏洞的防护方式
包含大量工具介绍及对比,满足快速修复漏洞的需求
内容简介
《Web漏洞防护》以OWASPTop102017中涉及的漏洞为基础,系统阐述了常见的Web漏洞的防护方式。书中首先介绍了漏洞演示平台及一些常用的安全防护工具,然后对OWASPTop102017中涉及的漏洞防护方式及防护工具进行了说明,接着介绍了如何通过HTTP响应头提升Web客户端自身对漏洞的防护能力,最后讨论了在无法更改应用程序源码的情况下,如何对应用进行外层的WAF防护。
作者简介
李建熠,毕业于北京邮电大学,安全从业者及爱好者,曾任职于美团点评,参与过美团点评安全从0到1的构建。
目录
第1章使用工具介绍1
1.1 WebGoat 1
1.2 ESAPI 5
1.3 ApacheShiro 8
1.3.1 ApacheShiro的特征 8
1.3.2 ApacheShiro的核心概念 9
1.3.3 与Spring集成 12
1.4 SpringSecurity 15
1.5 OWASPTop10 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 ApacheShiro认证 63
4.4.3 ApacheShiro会话管理 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 ApacheShiro访问控制 123
7.3.2 ESAPI随机化对象引用 126
7.3.3 SpringSecurityCORS配置 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 OWASPJavaEncoder 144
9.4.2 OWASPJavaHTMLSanitizer 149
9.4.3 AnjularJSSCE 158
9.4.4 ESAPI4JS 160
9.4.5 jQueryEncoder 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 OWASPDependencyCheck 190
11.2.3 SonatypeAHC 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 不完全的防护方式 203
12.3.2 正确的防护方式 204
12.4 防护工具 209
12.4.1 自定义防护工具 210
12.4.2 SpringSecurity防护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 知名网站实例 231
14.3.2 设置建议 233
14.4 配置安全响应头 233
14.4.1 SpringSecurity统一配置 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 OWASPModSecurityCRS 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