具体描述
本书由国际知名网络安全专家亲笔撰写,全面讲解如何预防常见的网络攻击,包括HTML注入及跨站脚本攻击、跨站请求伪造攻击、SQL注入攻击及数据存储操纵、攻破身份认证模式、利用设计缺陷、利用平台弱点、攻击浏览器和隐私等,
全书共8章:第1章介绍HTML5的新增特性及使用和滥用HTML5的安全考虑;第2章展示了如何只通过浏览器和最基本的HTML知识就可以利用Web中最常见的漏洞;第3章详细讲解CSRF(跨站请求伪造)攻击的实现机制及应对策略;第4章介绍如何执行SQL注入攻击,并探究了类似攻击的实现机制,提供一些阻止这些攻击的对策;第5章介绍Web站点保护密码失败的常见方式以及阻止这些攻击所能采取的步骤;第6章主要探讨网站底层设计中会导致漏洞的错误;第7章不仅介绍了应用程序代码可能引发的错误,还介绍了除此之外不应当忽略的其他安全性问题;第8章将探讨更多浏览器面临的来自恶意设计的网页或者已经感染了恶意内容网页的风险。
作者简介
Mike Shema 国际知名的网络安全专家,现就职于Qualys,专注于自动化Web评估服务。之前曾是Foundstone信息安全咨询公司首席咨询师和培训师,在网络渗透测试、无线网络安全、代码审核、Web安全等方面有丰富的经验,撰写了多部信息安全技术图书,如《黑客大曝光:Web应用安全机密与解决方案》、《反黑客工具箱》和《黑客札记:Web安全手册》,并经常在世界范围的安全技术大会上演讲。
译者简介
齐宁 解放军信息工程大学博士,曾讲授课程有“信息安全”“网络原理与实践”等,曾参研国家重大专项611工程、国家863项目等,涉及漏洞发现技术、逆向分析技术、高性能计算机体系结构等领域。
目录信息
前言
第1章 HTML5 1
1.1 新的文档对象模型 2
1.2 跨域资源共享 3
1.3 Websocket 6
1.3.1 传输数据 9
1.3.2 数据帧 10
1.3.3 安全性考虑 12
1.4 Web存储 13
1.5 Web Worker 15
1.6 杂七杂八 18
1.6.1 History API 18
1.6.2 API草案 18
1.7 小结 18
第2章 HTML注入及跨站脚本攻击 20
2.1 理解HTML注入 21
2.1.1 确定注入点 26
2.1.2 确定反射类型 33
2.1.3 确定注入呈现位置的上下文 36
2.1.4 攻击汇总 40
2.1.5 利用字符集 42
2.1.6 利用失效模式 49
2.1.7 绕过弱的排除列表 52
2.1.8 利用浏览器的怪异模式 53
2.1.9 不寻常的攻击载体 55
2.1.10 XSS的影响 58
2.2 部署应对措施 59
2.2.1 确定静态字符集 60
2.2.2 规范化字符集及编码 61
2.2.3 对输出进行编码 62
2.2.4 当心排除列表和正则表达式 63
2.2.5 重用代码,不要重新实现代码 64
2.2.6 JavaScript沙盒 65
2.2.7 浏览器内置XSS防御 67
2.3 小结 69
第3章 跨站请求伪造 70
3.1 理解跨站请求伪造 71
3.1.1 CSRF实现机制 73
3.1.2 借助强制浏览的请求伪造 76
3.1.3 无需密码攻击已认证动作 79
3.1.4 危险关系:CSRF和HTML注入 79
3.1.5 当心错综复杂的Web 80
3.1.6 相关主题:点击劫持 81
3.2 部署应对措施 82
3.2.1 朝着正确方向努力 83
3.2.2 保卫Web浏览器 91
3.2.3 脆弱性和似真性 92
3.3 小结 92
第4章 SQL注入攻击及数据存储操纵 94
4.1 理解SQL注入 96
4.1.1 攻击路线:数学和语法 99
4.1.2 攻击SQL语句 99
4.1.3 剖析数据库 107
4.1.4 其他攻击向量 110
4.1.5 真实世界中的SQL注入攻击 111
4.1.6 HTML5的Web存储API 112
4.1.7 不使用SQL的SQL注入攻击 113
4.2 部署应对措施 114
4.2.1 验证输入 115
4.2.2 对语句进行保护 115
4.2.3 保护信息 121
4.2.4 给数据库打最新的补丁 123
4.3 小结 123
第5章 攻破身份认证模式 125
5.1 理解身份认证攻击 126
5.1.1 重放会话令牌 126
5.1.2 暴力破解 129
5.1.3 网络嗅探 130
5.1.4 重置密码 132
5.1.5 跨站脚本攻击 133
5.1.6 SQL注入 133
5.1.7 诈骗和易受骗性 134
5.2 部署应对措施 135
5.2.1 保护会话cookie 135
5.2.2 使用安全认证方案 137
5.2.3 借助用户的力量 144
5.2.4 骚扰用户 145
5.2.5 请求限制 146
5.2.6 日志与三角测量 147
5.2.7 击败钓鱼攻击 147
5.2.8 保护密码 148
5.3 小结 148
第6章 利用设计缺陷 150
6.1 理解逻辑攻击和设计攻击 153
6.1.1 利用工作流 153
6.1.2 漏洞利用的策略及做法 154
6.1.3 归纳法 158
6.1.4 拒绝服务 160
6.1.5 不安全的设计模式 161
6.1.6 加密中的实现错误 165
6.1.7 信息泄露 177
6.2 部署应对措施 178
6.2.1 记录需求 178
6.2.2 创建强健的测试用例 178
6.2.3 把策略映射到控制 180
6.2.4 防御性编程 180
6.2.5 验证客户端 181
6.2.6 加密指南 181
6.3 小结 182
第7章 利用平台弱点 183
7.1 攻击是如何实现的 184
7.1.1 识别模式、数据结构以及开发者癖好 184
7.1.2 以操作系统为攻击目标 197
7.1.3 攻击服务器 202
7.1.4 拒绝服务 202
7.2 部署应对措施 206
7.2.1 限制文件访问 207
7.2.2 使用对象引用 207
7.2.3 将不安全函数列入到黑名单 208
7.2.4 强制授权 208
7.2.5 限制网络连接 208
7.3 小结 209
第8章 攻击浏览器和隐私 210
8.1 理解恶意软件和浏览器攻击 211
8.1.1 恶意软件 211
8.1.2 插入到浏览器插件中 215
8.1.3 DNS和域 217
8.1.4 HTML5 217
8.1.5 隐私 219
8.2 部署应对措施 227
8.2.1 安全地配置SSL/TLS 227
8.2.2 更加安全地浏览网页 228
8.2.3 隔离浏览器 229
8.2.4 Tor 229
8.2.5 DNSSEC 230
8.3 小结 230
· · · · · · (收起)
读后感
用户评价
我个人非常喜欢书中对安全文化建设方面的探讨,这部分内容常常被技术书籍所忽略。作者花费了大量的篇幅来论述“DevSecOps的落地并非一蹴而就”,强调了将安全思维融入到开发团队日常工作流程中的必要性。书中通过几个企业内部的变革案例,生动地展示了当安全责任被分散到各个团队成员手中时,整体安全态势是如何发生质变的。这种自上而下、全员参与的视角,让安全不再是安全部门的“独角戏”,而是整个组织共同的责任。这种管理学和工程学的结合,使得这本书不仅仅停留在技术层面,更上升到了组织效能和风险治理的高度,是我在众多纯技术书籍中看到的最具启发性的部分之一。
坦白说,这本书的实战指导性略显不足,更偏向于学术探讨和原理分析。当我满心期待能够找到一系列可以直接复制粘贴到我的CI/CD流程中去应用的自动化工具链或者具体的渗透测试步骤时,我感到了一丝失落。书中对OWASP Top 10的剖析极其精彩,但其提供的防御策略更多地聚焦于代码层面的优化和设计原则的遵循,对于如何配置一个高效的WAF(Web应用防火墙)或者如何利用最新的开源安全扫描器来提高误报率的调整技巧,着墨不多。对于那些迫切需要快速解决生产环境中安全漏洞的工程师而言,可能需要搭配其他更侧重于“工具箱”和“实战手册”的书籍来辅助阅读。这本书更像是为你提供了一张详尽的“安全地图”,告诉你所有路怎么修,但没有直接给你提供“施工队”和“现成路面材料”。
这本书的理论深度实在令人印象深刻,它不仅仅停留在对常见安全问题的罗列和浅尝辄止的修复建议上,而是深入挖掘了底层原理。作者对Web应用安全机制的理解极为透彻,无论是对HTTP协议本身的深层次解析,还是对现代前端框架(如React、Vue)在安全上下文中的独特挑战,都有独到的见解。尤其是在讨论CSRF和XSS的变体时,书中引用了大量的实际案例和学术研究,使得即便是经验丰富的开发者也能从中汲取新的知识点。我特别欣赏它在架构层面探讨安全时采用的视角,它没有把安全看作是应用构建完成后的“打补丁”环节,而是贯穿于整个软件生命周期的核心要素。书中对于安全编码规范的阐述,详实到近乎教科书级别,对于想要系统性提升自身安全能力的读者来说,这无疑是一本极具价值的参考手册,它为我们搭建稳固、可信赖的数字基础设施提供了坚实的理论基石。
这本书的亮点在于它对“新型威胁”的关注度非常及时。在很多传统安全书籍还在着重强调SQL注入和目录遍历时,这本书已经开始深入探讨诸如“无服务器架构(Serverless)的安全边界模糊性”以及“API网关的认证与授权缺陷”等前沿议题。这种前瞻性使得它在面对快速迭代的技术栈时,展现出了强大的生命力。例如,关于OAuth 2.0和OpenID Connect在实际部署中常见的错误配置分析,其细致入微的程度令人称道,这部分内容在很多老旧的安全读物中是完全找不到的。它成功地搭建了一个桥梁,连接了传统的应用安全理论和现代微服务、云原生环境下的安全挑战,这对于维护面向未来的应用系统至关重要。
阅读体验上,这本书的行文风格非常严谨,充满了专业术语和精确的定义,对于初入安全领域的新手来说,挑战性是比较大的。它的叙事节奏偏慢,每一章节都像是在解剖一个复杂的生物标本,需要读者投入相当高的专注力来消化其中的逻辑链条。我花了比预期多得多的时间来理解其中关于“同源策略的细微差别”以及“反序列化攻击链的构造”那几段内容,很多地方不得不翻阅附录和参考文献进行交叉验证。这绝不是一本可以轻松地在通勤路上浏览的书籍,它要求读者有一个坚实的计算机科学背景作为跳板。如果你的目标是成为一个理论扎实的安全研究员或者架构师,这本书是必需品;但如果你只是想了解如何用最快的速度修复一个Spring Boot应用里的已知漏洞,这本书可能会让你感到有些“杀鸡用牛刀”了。
概念偏多,还好不太厚,要不一时半会还真啃不完。
长一点知识,少当点文盲。
长一点知识,少当点文盲。
概念偏多,还好不太厚,要不一时半会还真啃不完。
长一点知识,少当点文盲。