首页>参考读物>计算机科学与技术>安全

Web安全防护指南:基础篇
作者 : 蔡晶晶 张兆心 林天翔 编著
出版日期 : 2018-04-18
ISBN : 978-7-111-58776-7
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 374
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

web安全与防护技术是当前安全界关注的热点,本书尝试针对各类漏洞的攻防技术进行体系化整理,从漏洞的原理到整体攻防技术演进过程进行详细讲解,从而形成对漏洞和web安全的体系化的认识。本书包括五个部分,第一部分为基础知识,这些知识对Web攻防技术理解有着极大帮助。第二部分重点讲解各类基本漏洞的原理及攻防技术对抗方法,并针对个漏洞的测试方法及防护思路进行整理。第三部分重点讲解Web应用的业务逻辑层面安全,但由于各类Web应用的不同,因此重点通过Web应用的用户管理功能入手,讲解在用户权限的获取、分配、利用方面的各项细节问题。第四部分从Web应用整体视角提供攻防对抗过程中的技术细节,这在实际运维过程中有很大的作用。第五部分介绍Web安全防护体系建设的基本方法,包含常见的防护设备、Web防护体系建议、渗透测试方法及快速代码审计实践,深入了解在Web安全防护体系中的各部分基础内容及开展方式。

图书特色

系统梳理各类Web安全漏洞,从Web应用的业务逻辑层面寻找防护方法,总结攻防视角下的Web安全防护体系建设方法。
从Web安全问题的表现形式、实现原理到防护原则、动手实践,层层深入,使读者理解问题的成因、危害、关联,进而实现有效防御。

图书前言

一、为什么要写这本书
随着网络的普及,人们的工作、生活已经与网络深度融合。Web系统由于其高度可定制的特点,非常适合承载现有的互联网应用。目前,大量在线应用网站的出现和使用也印证了这一点。我们每个人每天都会打开各种网站搜索自己感兴趣的内容或使用某一个应用,其中每个站点的功能各不相同,业务流程也各自独立,并且站点功能及版本的迭代、更新速度非常快。同时,由于大量Web应用功能及版本的快速更新,也导致各类新型Web安全问题不断出现。尽管Web安全问题的表现形式各异,但深入分析各类安全问题的成因会发现,这些安全问题有一定的共性并能通过相关的网络安全技术来加以防御和解决。
反观Web安全的学习过程,由于Web安全攻防涉及的技术、工具繁多,安全问题也表现出各种复杂的形式,学习者很容易被这些表象混淆,进入“只见树木不见森林”的误区,无法快速成长。因此,本书作者基于多年的安全研究、教学、工程实践经验,以帮助读者建立知识体系为目标,通过原理、方法、代码、实践的层层深入,使读者充分理解Web安全问题的成因、危害、关联,进而有效地保护Web系统,抵御攻击。
二、本书的主要内容
本书试图整理出Web安全防护知识的体系,因此对每一类Web安全问题,都对从原理到攻防技术的演进过程加以详细的讲解。在针对安全问题的分析方面,本书从基础的漏洞环境入手,可排除不同业务环境的干扰,更聚焦于安全问题本身。这种方式有利于帮助读者在掌握每种Web安全问题的解决方案的同时,对整个Web安全防护体系建立清晰的认知。
本书主要内容共分为5部分,各部分内容如下。
第一部分(包括第1章):Web应用概念庞大、涉及的协议广泛,因此,此部分没有系统地介绍所有的基础内容,而是抽取了与Web安全关系密切的协议等方面的基础知识。这些知识对后续理解Web攻防技术极为关键。
第二部分(包括第2~8章):重点讲解Web应用中的基础漏洞,从用户端到服务器端依次开展分析。首先从主要攻击用户的跨站请求攻击入手,之后了解Web应用中的请求伪造攻击、针对Web应用于数据库交互产生的SQL注入攻击。再针对可直接上传各类危险文件的上传漏洞进行分析,并说明上传漏洞中常用的木马的基本原理。最后对服务器端的危险应用功能(文件包含、命令执行漏洞)进行分析。此部分重点讲解上述基本漏洞的原理及攻防技术对抗方法,并针对每个漏洞的测试及防护方法的技术演进思路进行整理。
第三部分(包括第9~15章):重点讲解Web应用的业务逻辑层面的基础安全问题。Web应用基于用户管理机制来提供个性化的服务,用户的身份认证则成为安全开展Web应用的基础功能。此部分从用户的未登录状态入手,讲解用户注册行为中潜在的安全隐患。然后对用户登录过程中的安全问题进行整理,并对常见的用户身份识别技术进行原理说明。最后对用户登录后的基本功能及用户权限处理方式进行讲解。
第四部分(包括第16~19章):主要讲解在实际Web站点上线之后的基础防护方式,并从Web整体应用的视角展示攻防对抗过程中的技术细节。重点针对Web服务潜在的基础信息泄漏方及对应处理方法进行总结。最后提供可解决大部分问题的简单防护方案,这对安全运维有较大的用途。
第五部分(包括第20~23章):在前几部分的基础上总结Web安全防护体系建设的基本方法。本部分先从Web安全中常见的防护类设备入手,分析各类安全防护设备的特点及适用范围。之后,对目前业界权威的安全开发体系进行基本介绍,并对安全服务中的渗透测试的主要流程进行说明。最后以实例的形式展示如何进行快速的代码审计。
以上每个部分的知识均为递进关系。第一部分和第二部分帮助读者了解Web应用中各类漏洞的原理及测试方式、防护手段等。第三部分和第四部分让读者了解业务层面和整体安全的防护方法。第五部分则从整体层间构建有效防护体系的思路。最后可综合掌握Web安全防护的整体内容,这也是本书希望读者获得的阅读效果。
三、本书的读者对象
本书适合所有对Web安全感兴趣的初学者以及从事安全行业的相关人员,主要包括以下几类读者:
信息安全及相关专业本科生
本书以基本的漏洞为例,循序渐进地梳理攻防对抗方式及各类漏洞的危害。信息安全及相关专业学生可根据这些内容快速入门,并以此作为基础来探索信息安全更前沿的领域。
安全运维人员
本书提供了大量漏洞利用特征及有效的安全运维方式,可供安全运维人员在实际工作中快速发现系统安全状况,并对安全漏洞进行基本的处理。
安全开发人员
本书列举了各种漏洞的原理分析及防护方式,可帮助开发人员在Web系统的开发过程中对漏洞进行规避,进而从根源上避免Web漏洞的出现。
安全服务人员
安全服务人员重点关注如何快速发现目标Web系统的安全隐患并针对问题提出处理建议。此类读者建议重点阅读本书前三部分以及最后一部分的最后两章,可为安全服务的工作开展提供更全面的技术支持。
攻防技术爱好者
对于攻防技术爱好者来说,本书提供了体系化的Web安全基础原理,可有效丰富个人的知识储备体系。
四、如何阅读这本书
本书虽然篇幅不大,但涉及的内容繁多,加之Web安全是一个实践性极强的领域,因此,我们对学习本书给出如下建议。
1.需要具备的基础知识
Web系统一般需要服务器、中间件、Web语言、数据库等多方面的支持,相应地,在Web安全防护中也会应用到上述知识。安全从业者不一定要像开发人员那样对以上内容非常熟悉,但应对以上内容有初步了解并理解基本用法。这方面的教程很多,读者可以自行选择。另外,本书的所有案例均基于PHP环境编写,因此读者如有基本的PHP知识,则能更好地理解本书的内容。
2.具有一定编程经验
在了解攻防技术方向之前,最好具有一定的编程经验。这些经验可帮助读者快速阅读漏洞源码及相应的语句,并可显著提升Web安全的学习效率。这里的编程经验以可独立阅读各种语言的基础示例代码为基准,并不需要有十分专业的开发能力。
3.善用搜索引擎
在学习Web安全的过程中会遇到非常多的基础内容或者特点,且每个人的基础并不相同。针对个人不理解的问题,建议善用各类搜索引擎来获取帮助。关于如何高效使用搜索引擎,可参考本书第四部分的讲解。
4.动手实践
Web安全是一个实践性很强的领域,需要通过大量的直接攻防技术练习来建立对漏洞的直观认识,并积累解决问题的经验。本书给出了大量的案例,读者可以利用这些案例进行练习,或者登录“i春秋在线培训平台”(www.ichunqiu.com)进行专项练习。
在本书的学习阅读顺序上,建议读者顺序学习本书的各章,以便对Web安全防护建立系统认识。不同基础的读者也可根据自身情况以及关注内容进行选择性的阅读。
五、致谢
本书的编写工作历时两年,在整个过程中得到了永信至诚科技股份有限公司与哈尔滨工业大学(威海)网络与信息安全研究中心的同事的支持和帮助,在本书即将付梓之际,谨向他们表示最诚挚的感谢!
感谢哈尔滨工业大学(威海)计算机科学与技术学院的迟乐军教授、谷松林老师在本书编写的各个环节中提供的支持;感谢殷亚静为本书绘制插图;感谢倪远东、王续武、刘深荣、孟晨、彭衍豪、刘骁睿、余超、卢鑫、李思锐、张鹏、雷朋荃、刘家豪、李彦哲、张瑞淇、付尧、黄欣、靳祯等对本书中案例的持续调整和完善;感谢机械工业出版社华章分社的编辑对本书的出版付出的劳动。
限于作者水平,加之Web安全防护技术的进展迅速,本书难免存在不当和疏漏之处,恳请各位读者提出、指正!我们期待与读者的交流!

作者  
2018年1月

上架指导

计算机\安全

封底文字

本书是作者和一个有十余年经验的安全研究团队一起在实践中磨合出来的。与纯粹产业圈朋友的著作相比,这本书更加强调学术教育圈关注的视角:如何让读者学到更加全面的内容、如何形成体系化的能力,毕竟授人以渔要比授人以鱼重要得多;与纯粹学术圈朋友的著作相比,这本书则具有大量的一线工程实践内容。
——阿里巴巴集团技术副总裁 杜跃进

Web系统由于其高度可定制的特点,非常适合承载现有的互联网应用。同时,由于大量Web应用功能及版本的快速更新,也导致各类新型Web安全问题的出现。尽管Web安全问题的表现形式各异,但深入分析各类安全问题的成因会发现,这些安全问题有一定的共性并能通过相关的网络安全技术来加以防御和解决。
本书作者基于多年的安全研究、教学、工程实践经验,以帮助读者建立知识体系为目标,通过原理、方法、代码、实践的层层深入,使读者充分理解Web安全问题的成因、危害、关联,进而有效地保护Web系统,抵御攻击。
本书以知识递进的层次安排内容,首先介绍Web应用中的基础漏洞和Web应用的业务逻辑层面的基础安全问题,然后介绍实际Web站点上线之后的基础防护方式,并从Web整体应用的视角下展示攻防对抗过程中的技术细节,最后总结Web安全防护体系建设的基本方法,最终掌握Web安全防护的整体内容。

推荐序

网络安全如今似乎进入到了一个非常混乱的状态:层出不穷的安全漏洞、不间断的安全事件,似乎所有东西都能入侵控制的攻击演示。这些让人们变得十分麻木,同时网络安全工作者也十分困惑:究竟怎样才能改善网络安全状况呢?
尽量跳出具体的漏洞或者事件,从更全面的视角来看问题;尽量越过令人眼花缭乱的表象,把握事物更深层次的本质,从更基础的角度来设法解决问题——这应该是让我们摆脱被动的一个方向。而这本书就是试图从这样的角度给读者提供一些帮助。
然而,Web似乎是一个被说烂了的话题,并且Web安全的门槛貌似也很低,很多中学生都可以轻易找到很多Web站点的问题。同时,Web安全的书籍也不少,为什么还要读这本关于Web安全的书呢?
安全攻防是一个体系的对抗。再高深、再尖端的技术,也经常在最简单的地方被彻底击败,因此,并不能根据感官上难度的大小来评价一件事情的意义。另外,Web攻防不但不是想象中那么简单(无论是什么原因,有问题的Web站点始终还是多如牛毛),而且还是攻防体系中的一个兵家必争之地:从Web出现以来,在短短的时间之内,它就一统江湖,结束了之前众多的应用入口,变成了各种互联网应用的统一门户。Web自然也成为攻防重地。
这本书的内容是作者和一个有十年经验的安全研究团队一起在实践中磨合出来的。相较于纯粹产业圈朋友的著作来说,这本书更加强调学术和教育圈关注的话题:如何让读者学到更加全面的东西?如何形成体系化的能力?毕竟授人以渔要比授人以鱼重要得多。而相较于纯粹学术圈朋友的著作来说,这本书又具有大量的一线工程实践方面的内容。
因此,如同作者所说,如果你是安全运维人员、开发人员、服务人员,甚至是互联网应用体系的设计人员,认真读一读这本书,都会有很大收益。

杜跃进

图书目录

推荐序
前言
第一部分 基础知识
第1章 Web安全基础 2
1.1 Web安全的核心问题 2
1.2 HTTP协议概述 5
1.2.1 HTTP请求头的内容 6
1.2.2 HTTP协议响应头的内容 9
1.2.3 URL的基本格式 11
1.3 HTTPS协议的安全性分析 12
1.3.1 HTTPS协议的基本概念 13
1.3.2 HTTPS认证流程 14
1.3.3 HTTPS协议的特点总结 16
1.4 Web应用中的编码与加密 16
1.4.1 针对字符的编码 16
1.4.2 传输过程的编码 18
1.4.3 Web系统中的加密措施 20
1.5 本章小结 22
第二部分 网络攻击的基本防护方法
第2章 XSS攻击 24
2.1 XSS攻击的原理 24
2.2 XSS攻击的分类 25
2.2.1 反射型XSS 26
2.2.2 存储型XSS 26
2.2.3 基于DOM的XSS 26
2.3 XSS攻击的条件 26
2.4 漏洞测试的思路 27
2.4.1 基本测试流程 28
2.4.2 XSS进阶测试方法 30
2.4.3 测试流程总结 40
2.5 XSS攻击的利用方式 40
2.5.1 窃取Cookie 40
2.5.2 网络钓鱼 42
2.5.3 窃取客户端信息 44
2.6 XSS漏洞的标准防护方法 45
2.6.1 过滤特殊字符 45
2.6.2 使用实体化编码 50
2.6.3 HttpOnly 52
2.7 本章小结 52
第3章 请求伪造漏洞与防护 53
3.1 CSRF攻击 54
3.1.1 CSRF漏洞利用场景 58
3.1.2 针对CSRF的防护方案 58
3.1.3 CSRF漏洞总结 61
3.2 SSRF攻击 61
3.2.1 SSRF漏洞利用场景 62
3.2.2 针对SSRF的防护方案 65
3.2.3 SSRF漏洞总结 66
3.3 本章小结 66
第4章 SQL注入 67
4.1 SQL注入攻击的原理 67
4.2 SQL注入攻击的分类 72
4.3 回显注入攻击的流程 72
4.3.1 SQL手工注入的思路 73
4.3.2 寻找注入点 73
4.3.3 通过回显位确定字段数 74
4.3.4 注入并获取数据 76
4.4 盲注攻击的流程 78
4.4.1 寻找注入点 79
4.4.2 注入获取基本信息 81
4.4.3 构造语句获取数据 84
4.5 常见防护手段及绕过方式 86
4.5.1 参数类型检测及绕过 86
4.5.2 参数长度检测及绕过 88
4.5.3 危险参数过滤及绕过 90
4.5.4 针对过滤的绕过方式汇总 95
4.5.5 参数化查询 99
4.5.6 常见防护手段总结 100
4.6 本章小结 101
第5章 文件上传攻击 102
5.1 上传攻击的原理 103
5.2 上传的标准业务流程 103
5.3 上传攻击的条件 106
5.4 上传检测绕过技术 107
5.4.1 客户端JavaScript检测及绕过 107
5.4.2 服务器端MIME检测及绕过 110
5.4.3 服务器端文件扩展名检测及绕过 113
5.4.4 服务器端文件内容检测及绕过 118
5.4.5 上传流程安全防护总结 122
5.5 文件解析攻击 123
5.5.1 .htaccess攻击 123
5.5.2 Web服务器解析漏洞攻击 125
5.6 本章小结 127
第6章 Web木马的原理 128
6.1 Web木马的特点 129
6.2 一句话木马 130
6.2.1 一句话木马的原型 130
6.2.2 一句话木马的变形技巧 131
6.2.3 安全建议 135
6.3 小马与大马 136
6.3.1 文件操作 137
6.3.2 列举目录 139
6.3.3 端口扫描 139
6.3.4 信息查看 140
6.3.5 数据库操作 142
6.3.6 命令执行 143
6.3.7 批量挂马 144
6.4 本章小结 145
第7章 文件包含攻击 146
7.1 漏洞原理 146
7.2 服务器端功能实现代码 147
7.3 漏洞利用方式 148
7.3.1 上传文件包含 148
7.3.2 日志文件包含 148
7.3.3 敏感文件包含 150
7.3.4 临时文件包含 151
7.3.5 PHP封装协议包含 151
7.3.6 利用方式总结 151
7.4 防护手段及对应的绕过方式 152
7.4.1 文件名验证 152
7.4.2 路径限制 154
7.4.3 中间件安全配置 156
7.5 本章小结 158
第8章 命令执行攻击与防御 159
8.1 远程命令执行漏洞 159
8.1.1 利用系统函数实现远程命令
执行 159
8.1.2 利用漏洞获取webshell 163
8.2 系统命令执行漏洞 167
8.3 有效的防护方案 169
8.3.1 禁用部分系统函数 169
8.3.2 严格过滤关键字符 169
8.3.3 严格限制允许的参数类型 169
8.4 本章小结 170
第三部分 业务逻辑安全
第9章 业务逻辑安全风险存在的前提 172
9.1 用户管理的基本内容 173
9.2 用户管理涉及的功能 174
9.3 用户管理逻辑的漏洞 175
9.4 本章小结 176
第10章 用户管理功能的实现 177
10.1 客户端保持方式 177
10.1.1 Cookie 178
10.1.2 Session 179
10.1.3 特定应用环境实例 180
10.2 用户基本登录功能实现及安全情况分析 186
10.3 本章小结 189
第11章 用户授权管理及安全分析 190
11.1 用户注册阶段安全情况 191
11.1.1 用户重复注册 191
11.1.2 不校验用户注册数据 192
11.1.3 无法阻止的批量注册 193
11.2 用户登录阶段的安全情况 194
11.2.1 明文传输用户名/密码 194
11.2.2 用户凭证(用户名/密码)可被暴力破解 198
11.2.3 万能密码 199
11.2.4 登录过程中的安全问题及防护手段汇总 202
11.3 密码找回阶段的安全情况 203
11.3.1 验证步骤可跳过 204
11.3.2 平行越权 205
11.3.3 验证过于简单 205
11.3.4 弱token 205
11.3.5 凭证返回 205
11.3.6 Session覆盖 206
11.4 记住登录状态 207
11.5 用户手段管理及登录安全汇总 208
11.6 本章小结 208
第12章 用户身份识别技术及安全防护 210
12.1 验证码技术 211
12.1.1 验证码的发展思路 211
12.1.2 验证码识别技术的发展 214
12.2 验证码带来的问题 217
12.2.1 验证码不刷新 218
12.2.2 验证码生成可控 218
12.2.3 验证码前台对比 218
12.3 二次验证技术 219
12.3.1 短信随机码识别 219
12.3.2 邮箱确认链接识别 219
12.4 身份识别技术的防护 220
12.5 本章小结 220
第13章 用户后续功能及集中认证方式安全分析 222
13.1 用户取得授权后的应用安全隐患 222
13.1.1 密码修改功能 224
13.1.2 绕过原密码验证 225
13.2 用户集中认证方式 225
13.2.1 OAuth2.0的授权过程 227
13.2.2 可能存在的安全隐患 227
13.3 本章小结 228
第14章 用户权限处理问题 229
14.1 用户越权的案例 229
14.2 越权漏洞的出现根源分析 229
14.3 保持用户一致性的措施 231
14.4 有效的用户权限管理方式 231
14.5 本章小结 237
第15章 业务流程安全基础防护方式总结 238
15.1 用户注册阶段 240
15.2 用户登录阶段 242
15.3 密码找回阶段 244
15.4 基本业务功能应用阶段 245
15.5 本章小结 247
第四部分 攻防综合视角下的Web安全防护第16章 标准业务场景 250
16.1 CMS及其特征 250
16.2 常见的远程管理方式 253
16.2.1 Web应用管理后台 254
16.2.2 数据库开放远程管理 255
16.2.3 在线编辑器 256
16.3 本章小结 257
第17章 用户视角下的所见范围探测 258
17.1 易被忽视的whois信息 258
17.2 利用搜索引擎发现敏感信息 261
17.2.1 常用操作符 262
17.2.2 综合利用搜索引擎 267
17.2.3 专项搜索用法汇总 269
17.3 真实IP地址发现手段 271
17.4 真实物理地址 274
17.5 目标端口开放情况 275
17.6 目标版本特征发现 277
17.7 利用Web漏洞扫描工具的利与弊 279
17.8 分站信息查找 281
17.9 本章小结 282
第18章 用户视角下的防护手段识别 283
18.1 开放端口及对应业务识别 283
18.2 是否有防护类软件 284
18.3 基本漏洞的防护测试 285
18.4 本章小结 287
第19章 常用的防护方案 288
19.1 整体防护思路 288
19.2 简单的防护方案 289
19.2.1 关闭或修改服务器开放端口 289
19.2.2 利用防护类工具 291
19.2.3 采用成熟的CMS系统 292
19.3 提升安全性的基础手段 292
19.3.1 隐藏Web服务器的banner 292
19.3.2 robots.txt 296
19.3.3 提升后台地址复杂度 298
19.4 DDoS攻击及防护方法 298
19.4.1 DDoS的主要攻击手段 299
19.4.2 如何解决DDoS攻击问题 302
19.5 本章小结 304
第五部分 常见Web防护技术及防护开展方法
第20章 Web防护技术的演进 308
20.1 硬件WAF 309
20.1.1 常用的防护规则 311
20.1.2 Apache ModSecurity 312
20.2 防篡改软件 314
20.3 云防护系统 315
20.4 本章小结 316
第21章 Web安全防护体系建议 317
21.1 Web安全的核心问题 318
21.2 现实环境下的客观因素 319
21.3 如何建立基本的安全框架 319
21.3.1 处理用户交互权限 320
21.3.2 处理用户输入参数 321
21.3.3 确认用户应用边界 321
21.3.4 处理流程规范化 322
21.4 微软SDL安全开发流程 322
21.5 本章小结 324
第22章 渗透测试的方法及流程 325
22.1 渗透测试的关注点 326
22.2 渗透测试的阶段 326
22.3 渗透测试的基本要求 328
22.4 本章小结 329
第23章 快速代码审计实践 330
23.1 快速代码审计的基本流程 330
23.2 基本功能安全审计 331
23.3 系统防护功能的安全性分析 333
23.4 业务逻辑安全分析 343
23.5 本章小结 360
后记 361
参考文献 362

教学资源推荐
作者: (美)詹姆斯·兰萨姆(James Ransome) 安莫尔·米斯拉(Anmol Misra)著
作者: William Stallings;Lawrie Brown
作者: [美]奥马尔·桑托斯(Omar Santos)著
作者: [德] 迈克尔·威尔森巴赫(Michael Welschenbach)著
参考读物推荐
作者: [澳] 莱斯利·F. 西科斯(Leslie F. Sikos) 编
作者: 吴世忠 李斌 张晓菲 梁洪亮 著
作者: [美]爱德华多 B. 费尔南德斯(Eduardo B. Fernandez) 著