《开发者的Web安全戒律(真实威胁与防御实践)/网络空间安全技术丛书》(美)马尔科姆・麦克唐纳 | PDF下载|ePub下载
开发者的Web安全戒律(真实威胁与防御实践)/网络空间安全技术丛书 版权信息
- 出版社:机械工业出版社
- 出版时间:2022-08-01
- ISBN:9787111710332
- 条形码:9787111710332 ; 978-7-111-71033-2
开发者的Web安全戒律(真实威胁与防御实践)/网络空间安全技术丛书 本书特色
详细阐述互联网和Web应用的工作原理,深度剖析Web应用被攻击的常见方式
开发者的Web安全戒律(真实威胁与防御实践)/网络空间安全技术丛书 内容简介
本书面向开发人员,通过丰富示例深度剖析Web应用程序被攻击的常见方式,给出了针对开发阶段的很好防御实践,并总结出21条安全戒律,帮助读者构建完整的Web开发安全体系。 全书共18章,其中:第1章带领读者了解黑客如何入侵一个网站;第2~5章主要介绍互联网、浏览器的工作原理,以及Web服务器、程序员的工作方式;第6~18章深入研究需要防御的特定漏洞,其中第6~17章每一章都分解了一个主要的安全漏洞,探讨了一个真实的攻击,并结合大量代码展示了漏洞和修复方法,第18章总结了安全相关的要素。
开发者的Web安全戒律(真实威胁与防御实践)/网络空间安全技术丛书 目录
译者序
前言
关于作者
关于技术审校
致谢
第1章 让我们了解黑客如何入侵一个网站 1
1.1 软件漏洞和暗网 1
1.2 黑客如何攻击网站 2
第2章 互联网的工作原理 5
2.1 互联网协议套件 5
2.1.1 IP地址 6
2.1.2 域名系统 6
2.2 应用层协议 7
2.3 状态连接 11
2.4 加密 12
2.5 小结 12
第3章 浏览器的工作原理 13
3.1 页面呈现 13
3.1.1 渲染管道:概述 14
3.1.2 文档对象模型 14
3.1.3 样式信息 15
3.2 JavaScript 16
3.3 渲染前后:浏览器执行的所有其他操作 18
3.4 小结 18
第4章 Web服务器的工作方式 20
4.1 静态资源 20
4.1.1 URL解析 21
4.1.2 内容交付网络 22
4.1.3 内容管理系统 22
4.2 动态资源 24
4.2.1 模板 24
4.2.2 数据库 25
4.2.3 分布式缓存 27
4.2.4 Web编程语言 28
4.3 小结 32
第5章 程序员的工作方式 33
5.1 阶段1:设计与分析 34
5.2 阶段2:编写代码 34
5.2.1 分布式版本控制与集中式版本控制 35
5.2.2 分支和合并代码 35
5.3 阶段3:发布前测试 36
5.3.1 覆盖范围和持续集成 37
5.3.2 测试环境 37
5.4 阶段4:发布过程 38
5.4.1 发布期间标准化部署的选项 39
5.4.2 编译过程 41
5.4.3 数据库迁移脚本 41
5.5 阶段5:发布后的测试和观察 42
5.5.1 渗透测试 42
5.5.2 监控、日志记录和错误报告 42
5.6 依赖管理 43
5.7 小结 44
第6章 注入攻击 45
6.1 SQL注入 46
6.1.1 什么是SQL 46
6.1.2 SQL注入攻击剖析 47
6.1.3 缓解措施1:使用参数化语句 49
6.1.4 缓解措施2:使用对象关系映射 50
6.1.5 额外缓解:使用纵深防御 51
6.2 命令注入 52
6.2.1 命令注入攻击剖析 53
6.2.2 缓解措施:转义控制字符 54
6.3 远程代码执行 55
6.3.1 远程代码执行剖析 56
6.3.2 缓解措施:在反序列化期间禁用代码执行 56
6.4 文件上传漏洞 57
6.4.1 文件上传攻击剖析 57
6.4.2 缓解措施 59
6.5 小结 60
第7章 跨站点脚本攻击 62
7.1 存储型跨站点脚本攻击 62
7.1.1 缓解措施1:转义HTML字符 64
7.1.2 缓解措施2:实施内容安全策略 66
7.2 反射型跨站点脚本攻击 67
7.3 基于DOM的跨站点脚本攻击 69
7.4 小结 71
第8章 跨站点请求伪造攻击 72
8.1 CSRF攻击剖析 72
8.2 缓解措施1:遵循REST原则 73
8.3 缓解措施2:使用anti-CSRF cookie 74
8.4 缓解措施3:使用SameSite cookie属性 75
8.5 额外的缓解措施:敏感动作需要重新验证 76
8.6 小结 77
第9章 破坏身份认证 78
9.1 实施身份认证 78
9.1.1 HTTP本地身份认证 79
9.1.2 非本地认证 80
9.1.3 暴力破解攻击 80
9.2 缓解措施1:使用第三方身份认证 81
9.3 缓解措施2:与单点登录集成 81
9.4 缓解措施3:保护自己的身份认证系统 82
9.4.1 需要用户名、电子邮件地址或两个都要 82
9.4.2 要求复杂密码 85
9.4.3 安全地存储密码 85
9.4.4 多因素身份认证 87
9.4.5 实现并保护注销功能 88
9.4.6 防止用户枚举 88
9.5 小结 89
第10章 会话劫持 91
10.1 会话的工作方式 91
10.1.1 服务器端会话 92
10.1.2 客户端会话 93
10.2 攻击者如何劫持会话 95
10.2.1 cookie窃取 95
10.2.2 会话确定 97
10.2.3 利用弱会话ID 98
10.3 小结 99
第11章 权限 100
11.1 提权 100
11.2 访问控制 101
11.2.1 设计授权模型 101
11.2.2 实施访问控制 103
11.2.3 测试访问控制 104
11.2.4 添加审计记录 105
11.2.5 避免常见的疏忽 105
11.3 目录遍历 105
11.3.1 文件路径和相对文件路径 106
11.3.2 目录遍历攻击剖析 106
11.3.3 缓解措施1:信任你的Web服务器 107
11.3.4 缓解措施2:使用托管服务 108
11.3.5 缓解措施3:使用间接文件引用 108
11.3.6 缓解措施4:净化文件引用 108
11.4 小结 109
第12章 信息泄露 111
12.1 缓解措施1:禁用Telltale Server标头 111
12.2 缓解措施2:使用干净的URL 111
12.3 缓解措施3:使用通用cookie参数 112
12.4 缓解措施4:禁用客户端错误报告 112
12.5 缓解措施5:缩小或模糊处理JavaScript文件 113
12.6 缓解措施6:清理客户端文件 113
12.7 始终关注安全公告 114
12.8 小结 114
第13章 加密 115
13.1 Internet协议中的加密 115
13.1.1 加密算法、哈希和消息身份认证代码 116
13.1.2 TLS握手 118
13.2 启用HTTPS 120
13.2.1 数字证书 120
13.2.2 获取数字证书 121
13.2.3 安装数字证书 123
13.3 攻击HTTP(和HTTPS) 126
13.3.1 无线路由器 126
13.3.2 Wi-Fi热点 127
13.3.3 互联网服务提供商 127
13.3.4 政府机构 127
13.4 小结 128
第14章 第三方代码 129
14.1 保护依赖项 129
14.1.1 知道你正在运行什么代码 130
14.1.2 能够快速部署新版本 132
14.1.3 对安全问题保持警惕
前言
关于作者
关于技术审校
致谢
第1章 让我们了解黑客如何入侵一个网站 1
1.1 软件漏洞和暗网 1
1.2 黑客如何攻击网站 2
第2章 互联网的工作原理 5
2.1 互联网协议套件 5
2.1.1 IP地址 6
2.1.2 域名系统 6
2.2 应用层协议 7
2.3 状态连接 11
2.4 加密 12
2.5 小结 12
第3章 浏览器的工作原理 13
3.1 页面呈现 13
3.1.1 渲染管道:概述 14
3.1.2 文档对象模型 14
3.1.3 样式信息 15
3.2 JavaScript 16
3.3 渲染前后:浏览器执行的所有其他操作 18
3.4 小结 18
第4章 Web服务器的工作方式 20
4.1 静态资源 20
4.1.1 URL解析 21
4.1.2 内容交付网络 22
4.1.3 内容管理系统 22
4.2 动态资源 24
4.2.1 模板 24
4.2.2 数据库 25
4.2.3 分布式缓存 27
4.2.4 Web编程语言 28
4.3 小结 32
第5章 程序员的工作方式 33
5.1 阶段1:设计与分析 34
5.2 阶段2:编写代码 34
5.2.1 分布式版本控制与集中式版本控制 35
5.2.2 分支和合并代码 35
5.3 阶段3:发布前测试 36
5.3.1 覆盖范围和持续集成 37
5.3.2 测试环境 37
5.4 阶段4:发布过程 38
5.4.1 发布期间标准化部署的选项 39
5.4.2 编译过程 41
5.4.3 数据库迁移脚本 41
5.5 阶段5:发布后的测试和观察 42
5.5.1 渗透测试 42
5.5.2 监控、日志记录和错误报告 42
5.6 依赖管理 43
5.7 小结 44
第6章 注入攻击 45
6.1 SQL注入 46
6.1.1 什么是SQL 46
6.1.2 SQL注入攻击剖析 47
6.1.3 缓解措施1:使用参数化语句 49
6.1.4 缓解措施2:使用对象关系映射 50
6.1.5 额外缓解:使用纵深防御 51
6.2 命令注入 52
6.2.1 命令注入攻击剖析 53
6.2.2 缓解措施:转义控制字符 54
6.3 远程代码执行 55
6.3.1 远程代码执行剖析 56
6.3.2 缓解措施:在反序列化期间禁用代码执行 56
6.4 文件上传漏洞 57
6.4.1 文件上传攻击剖析 57
6.4.2 缓解措施 59
6.5 小结 60
第7章 跨站点脚本攻击 62
7.1 存储型跨站点脚本攻击 62
7.1.1 缓解措施1:转义HTML字符 64
7.1.2 缓解措施2:实施内容安全策略 66
7.2 反射型跨站点脚本攻击 67
7.3 基于DOM的跨站点脚本攻击 69
7.4 小结 71
第8章 跨站点请求伪造攻击 72
8.1 CSRF攻击剖析 72
8.2 缓解措施1:遵循REST原则 73
8.3 缓解措施2:使用anti-CSRF cookie 74
8.4 缓解措施3:使用SameSite cookie属性 75
8.5 额外的缓解措施:敏感动作需要重新验证 76
8.6 小结 77
第9章 破坏身份认证 78
9.1 实施身份认证 78
9.1.1 HTTP本地身份认证 79
9.1.2 非本地认证 80
9.1.3 暴力破解攻击 80
9.2 缓解措施1:使用第三方身份认证 81
9.3 缓解措施2:与单点登录集成 81
9.4 缓解措施3:保护自己的身份认证系统 82
9.4.1 需要用户名、电子邮件地址或两个都要 82
9.4.2 要求复杂密码 85
9.4.3 安全地存储密码 85
9.4.4 多因素身份认证 87
9.4.5 实现并保护注销功能 88
9.4.6 防止用户枚举 88
9.5 小结 89
第10章 会话劫持 91
10.1 会话的工作方式 91
10.1.1 服务器端会话 92
10.1.2 客户端会话 93
10.2 攻击者如何劫持会话 95
10.2.1 cookie窃取 95
10.2.2 会话确定 97
10.2.3 利用弱会话ID 98
10.3 小结 99
第11章 权限 100
11.1 提权 100
11.2 访问控制 101
11.2.1 设计授权模型 101
11.2.2 实施访问控制 103
11.2.3 测试访问控制 104
11.2.4 添加审计记录 105
11.2.5 避免常见的疏忽 105
11.3 目录遍历 105
11.3.1 文件路径和相对文件路径 106
11.3.2 目录遍历攻击剖析 106
11.3.3 缓解措施1:信任你的Web服务器 107
11.3.4 缓解措施2:使用托管服务 108
11.3.5 缓解措施3:使用间接文件引用 108
11.3.6 缓解措施4:净化文件引用 108
11.4 小结 109
第12章 信息泄露 111
12.1 缓解措施1:禁用Telltale Server标头 111
12.2 缓解措施2:使用干净的URL 111
12.3 缓解措施3:使用通用cookie参数 112
12.4 缓解措施4:禁用客户端错误报告 112
12.5 缓解措施5:缩小或模糊处理JavaScript文件 113
12.6 缓解措施6:清理客户端文件 113
12.7 始终关注安全公告 114
12.8 小结 114
第13章 加密 115
13.1 Internet协议中的加密 115
13.1.1 加密算法、哈希和消息身份认证代码 116
13.1.2 TLS握手 118
13.2 启用HTTPS 120
13.2.1 数字证书 120
13.2.2 获取数字证书 121
13.2.3 安装数字证书 123
13.3 攻击HTTP(和HTTPS) 126
13.3.1 无线路由器 126
13.3.2 Wi-Fi热点 127
13.3.3 互联网服务提供商 127
13.3.4 政府机构 127
13.4 小结 128
第14章 第三方代码 129
14.1 保护依赖项 129
14.1.1 知道你正在运行什么代码 130
14.1.2 能够快速部署新版本 132
14.1.3 对安全问题保持警惕
开发者的Web安全戒律(真实威胁与防御实践)/网络空间安全技术丛书 作者简介
马尔科姆・麦克唐纳(Malcolm McDonald),市场营销学教授,在全球享有盛誉。他是克兰菲尔德大学的名誉教授,英国雷丁大学亨瑞商学院、华威大学、阿斯顿大学和布拉德福德商学院的访问学者。他还是全球知名独立品牌价值评估公司Brand Finance plc的主席,并拥有5家公司,同时他还与一些世界知名的跨国公司的经营管理委员会一起合作,如BM、美国施乐公司、英国石油公司等。他撰写了40多部作品,其中包括畅销图书《图解营销策划》,被翻译成多种语言文字在全球出版发行。他的著作在市场营销学领域具有重要的地位。