科技>计算机>信息安全
白帽子讲Web安全(第2版)  

白帽子讲Web安全(第2版)  "

作者:吴翰清,叶敏
ISBN:9787121459672
定价:¥108.0
字数:607千字
页数:464
出版时间:2023-07
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

在当今的数字化时代,数据安全和个人隐私面临着前所未有的挑战,各种攻击技术层出不穷,Web安全依然是最主要的攻防战场。近10年与Web相关的技术飞速发展,本书第2版更新了前沿安全技术相关的内容,不仅从攻防原理的角度讲解了Web安全的各个方面,还介绍了安全开发、安全产品设计、企业安全建设等方面的最佳实践。Web开发者、安全专业人员以及对Web安全感兴趣的读者都可将本书作为参考指南。

前言

第2版序 时光荏苒,距本书第1版的出版转眼过去了十一年。在这十一年里,世界发生了许多变化:云计算不再是一个故事,大数据成了重要生产要素;深度学习的崛起则开启了第三次人工智能浪潮,机器人打败了人类棋手,在大模型的加持下,人工智能正在挑战越来越多的人类职业。我们经历了新冠疫情,正在经历俄乌冲突,这一切都让安全问题变得更加敏感。互联网的渗透无处不在,数据隐私、科技伦理变成人们愈发关心的话题。过去的十一年,我们看到了自动驾驶汽车失控酿成的交通事故、无人机被应用于战争、聊天机器人诱使人类自杀、元宇宙中发生性侵。科技的突破似乎总伴生着新的威胁,让人们在憧憬美好未来的同时,无法忽视那柄悬于头顶的达摩克利斯之剑。在这次技术革命的关口上,安全再次变成一个必须直面的问题:科技带来的是生存还是毁灭? 因此,在这个关口上将本书更新为第2版又增加了一份责任。正如本书开篇所言,“互联网本来是安全的,自从有了研究安全的人,就变得不安全了”。这似乎是一个悖论,但我们不妨认为,白帽子的使命,就是站在建设者的对立面,思考一个更加完善的系统应当是怎样的。这些年安全圈对白帽子理念不懈倡导,让产业界终于接受了“红蓝对抗”这一源自黑客文化的惯常做法,这是一场胜利,它给予所有白帽子应有的宽容和尊重,对应的回报是互联网变得越来越安全了。 十年前,多数公司会将报告漏洞的白帽子视为敲诈勒索者,白帽子在漏洞的缄默期之后选择公开漏洞的行为被视为对资本的挑衅。甚至还有公司将员工里的白帽子写脚本“刷”内部系统的中秋节月饼视为道德问题,而选择性忽视了白帽子报告漏洞的事实,令人哭笑不得。十年后的今天,在安全政策上成熟的公司会更多地建立友好的社区关系,将白帽子的这种行为视为类似于媒体的舆论监督。白帽子和记者的职责是类似的,首要的都是对公众负责,这是一种侠义精神。黑客精神中所谓的“挑战权威”,就是指通过一己之力让大企业在普通用户面前保持谦卑的态度。长期以来,这种独立的监督在人类社会中发挥了重要作用,从某种程度上来说,它是实现社会公平的一种保证。 如今在面临科技失控的挑战下,白帽子的责任在于,通过对安全技术、安全政策的研究,跟上科技发展的步伐,将科技的种种成果限定在对人类有益的范围内,控制科技所带来的负面影响。因此,科技发展的速度,委实受限于对应的安全技术发展的速度。第一次工业革命发生时,人们担心蒸汽机会爆炸;第二次工业革命发生时,人们担心高压电会带来生命危险;面对当前正在发生的人工智能革命,人们则担心GPT等大模型会冲击就业,带来机器意识失控的危险,因此多位计算机科学家联名签署了倡议书,建议暂缓训练更强大的人工智能大模型。但人类历史上所有的科技进步,最终都转化成造福人类的果实,其中必不可少的前提,就是科技的安全水平达到了一种可接受的程度。 帮助互联网相关的各类计算机系统达到一个可接受的安全水平,就是本书的写作目的。本书第1版在过去的十一年中得到了广大读者朋友的支持和好评,我也因编辑张春雨先生推荐,被评选为电子工业出版社四十年来50位有影响力的作者之一,倍感荣幸。但遗憾的是,在过去的日子里,我一直未能有时间和精力对本书内容进行修订,使其与时俱进。直到2022年,我才终于下定决心将本书更新为第2版。 在这次修订中,我邀请曾经的老同事,和我一起工作了十年的一位关键技术专家——叶敏,来担任第二作者。叶敏是团队中技术最好的几个人之一,有着高尚的品格和白帽子的职业操守。他见证了云计算安全从无到有的全过程,所涉猎安全知识的深度和广度都令我敬佩,交给他的安全技术问题还从来没有解决不了的。他深得云安全的精髓,是最合适的第二作者人选。叶敏修订了大量章节,更正了一些错漏和过时之处,同时新增了移动互联网、云计算、机器学习、DevSecOps等许多新领域的安全知识,使得第2版能够跟上时代的发展。 本书专注于安全技术的细节和原理,其内容来自我们多年的实践,对具体的工作有实际的指导意义,同时它也可以作为一本安全手册,供所有开发者查阅。从第2版开始,我们希望能够将这本书长期更新维护下去,以帮助更多需要它的人;同时,也希望未来有机会将这本书升级成“白帽子安全讲义”系列丛书,《白帽子讲Web安全》将会是这个系列的一个起点。 一起建设更安全的互联网! 吴翰清 2023年4月 于杭州 第1版序 在2010年年中的时候,博文视点的张春雨先生找到我,希望我可以写一本关于云计算安全的书。当时云计算的概念正如日中天,但关于云计算安全应该怎么做,市面上却没有足够多的资料。虽然由于工作的关系,我接触这方面工作比较多,但考虑到云计算的未来尚不清晰,以及其他的种种原因,婉拒了张春雨先生的提议,转而决定写一本关于Web安全的书。 我的安全之路 我对安全的兴趣起源于中学时期,当时我买到了一本没有书号的《黑客手册》,其中coolfire[ coolfire,真名“林正隆”,台湾著名黑客,中国黑客文化的先驱者。]的黑客教程令我印象深刻。此后,在有限的能接触互联网的机会里,我总会想方设法地寻找一些黑客教程,并以实践其中描述的方法为乐。 2000年,我进入西安交通大学学习。学校的计算机实验室平时会对学生开放,当时上网的资费仍然较贵,父母给我的生活费,除了必要的生活费用之外,我几乎全部用来上网了。也正是在学校的计算机实验室里,我在安全领域迅速成长起来。 大学期间,在父母的资助下,我拥有了自己的第一台个人电脑,这加快了我成长的步伐。与此同时,我和互联网上一些志同道合的朋友,一起建立了一个安全技术组织“幻影”(ph4nt0m.org,该网址已失效),名字来源于我当时最喜爱的一部动漫《幻影旅团》。历经十余载,尽管“幻影”最终由于种种原因未能得以延续,但它却培养出了如今安全行业中的许多顶尖人才。这也是我在这短短二十余载人生中的最大成就与自豪。 得益于互联网的开放性,以及良好的技术交流氛围,我见证了中国互联网安全发展的整个过程。从2000年开始,我投入大量精力研究渗透测试、缓冲区溢出、网络攻击等技术;而在2005年之后,出于工作需要,我把主要精力放在了对Web安全的研究上。 加入阿里巴巴 发生这种专业方向的转变,是因为2005年我在一位挚友(X-Laser)的推荐下,加入了阿里巴巴。加入这家公司的过程颇具传奇色彩。在面试的过程中,主管要求我展示自己的能力,在得到授权之后,我远程关闭了阿里巴巴办公网的一台关键网络设备的路由策略,导致阿里巴巴内部的办公网络中断。事后,主管立即对公司内部的网络安全进行了整改。 大学时期的兴趣爱好居然可以变成正经的职业(当时很多大学都尚未开设网络安全的课程与专业),这使得我的父母很震惊,同时也使我更坚定了以此作为事业的想法。 在阿里巴巴的安全工程师岗位上,我很快就崭露头角。在日常的内部安全测试中,我曾经在办公网中通过网络嗅探捕获到研发总监的邮箱密码;也曾经在压力测试中使公司的网络瞬间瘫痪;还有好几次,我成功获取了域控服务器的权限,从而可以以管理员的身份访问任何一位员工的工作电脑。这些工作让阿里巴巴的网络安全变得更加坚固。 但这些工作都远远比不上那厚厚的一摞网站安全评估报告让我更有成就感,因为我知道,网站上的每一个漏洞都影响着成千上万的用户,能够为上百万、千万的互联网用户服务,让我倍感自豪。当时,Web正在逐渐成为互联网的核心,Web安全技术也正在兴起,于是我义无反顾地投入到对Web安全的研究中。 2007年,我23岁,成为阿里巴巴集团最年轻的技术专家。在阿里巴巴,我有幸见证了安全部门从无到有的建设过程。同时由于淘宝、支付宝草创,尚未建立自己的安全团队,因此我亦有幸参与了淘宝、支付宝的安全建设,为它们奠定了安全开发框架、安全开发流程的基础。 对互联网安全的思考 当时,我隐隐地感觉到互联网安全与传统的网络安全、信息安全技术的区别。就如同开发者会遇到的挑战一样,有很多问题如果不放到海量用户的环境下,是难以暴露出来的。量变引起质变,所以管理10台服务器和管理1万台服务器的方法肯定会有所区别;同样,评估10名工程师的代码安全和评估1000名工程师的代码安全,方法肯定也有所不同。 互联网安全还有一些鲜明的特色,比如注重用户体验、注重性能、注重产品发布时间,因此传统的安全方案在这样的环境下可能完全行不通。这对安全工作提出了更高的要求和更大的挑战。 这些问题使我感觉到,互联网安全可能会成为一个新的领域,或者说应该把安全技术变得更加产业化。可是我在书店中却发现,安全类的图书要么是极为学术化的教科书(一般人看不懂),要么就是极为娱乐化的说明书(比如一些“黑客工具说明书”之类的书)。而那些极少数能够深入剖析安全技术原理的书,以我的经验看来,将其内容应用于实践时也会存在各种各样的问题。 这些问题使我萌发了写一本自己的书,分享多年来工作心得的想法。它将是一本阐述安全技术在企业级应用中实践的书,是一本大型互联网公司的工程师能够真正用得上的安全参考书。因此,张春雨先生一提到邀请我写书的想法时,我没有做过多的思考就答应了。 Web是互联网的核心,是未来云计算和移动互联网的最佳载体。因此,Web安全也是互联网安全业务中最重要的组成部分,我近年来的研究重心也在于此,故将选题范围定为Web安全。但其实本书的很多思维方式并不局限于Web安全,而是可以放到整个互联网安全的方方面面之中。 掌握正确的思维方式,学会以这样的方式看待安全问题,在解决安全问题时,就将无往而不利。我在2007年的时候,意识到掌握正确思维方式的重要性,因此告知好友:安全工程师的核心竞争力不在于他能独占多少个0day漏洞,掌握了多少种安全技术,而是在于他对安全理解的深度,以及由此引申的看待安全问题的角度和高度。我是如此想的,也是如此做的。 因此在本书中,我认为最有价值的不是那些产业化的解决方案,而是在解决安全问题时背后的思考过程。我们不是要做一个能够解决问题的方案,而是要做一个能够“漂亮地”解决问题的方案。这是每一名优秀的安全工程师所应有的追求。 安全启蒙运动 然而,当今的互联网行业对安全的重视程度普遍不高。有统计数据显示,互联网公司对安全的投入不足收入的百分之一。 2011年岁末,中国互联网突然卷入了一场有史以来最大的安全危机。2011年12月21日,国内最大的开发者社区CSDN被黑客在互联网上公布了其600万注册用户的数据。更糟糕的是,CSDN在数据库中以明文形式保存用户的密码。黑客随后陆续公布了网易、人人、天涯、猫扑、多玩等多家大型网站的数据库数据,一时间风声鹤唳,草木皆兵。 这些数据其实在黑客的地下世界中已经辗转流传了多年,牵扯到一条巨大的黑色产业链。这次的偶然事件使之浮出水面,公之于众,也让用户清醒地认识到中国互联网安全现状有多么糟糕。 以往发生类似的事件时,我都会在博客上说点什么,但这次我保持了沉默。因为一来知道此种状况已经存在多年,涉事网站只是在为以前的不作为而买单;二来要解决“拖库”的问题,其实是要解决整个互联网安全问题,远非保证数据库的安全这么简单。这不是用一段文字、一篇文章就能够讲清楚的,但我想在本书中可以找到最好的答案。 希望经历这场危机之后,整个中国互联网在安全问题的认识上,能够有一个新的高度。那么,这场危机也就“物有所值”,或许它还能成为一个契机,发起中国互联网的一场安全启蒙运动。 这是我的第一本书,也是我坚持自己一个人写完的书,因此可以在书中尽情地阐述自己的安全观,而且对书中的任何错漏之处以及不成熟的观点都没有可以推卸责任的借口。 由于工作繁忙,我只能利用业余时间写书,交稿时间被多次推迟,深感写书的不易。最终能成书则有赖于各位亲友的支持,以及编辑的鼓励,在此深表感谢。书中很多地方未能写得更为深入细致,实乃精力有限所致,尚请多多包涵。 关于白帽子 在安全圈子里,素有“白帽子”“黑帽子”一说。黑帽子是指那些造成破坏的黑客,而白帽子则是指研究安全,但不造成破坏的黑客。白帽子均以建设更安全的互联网为己任。 我于2008年开始在国内互联网行业中倡导白帽子的理念,并联合一些主要互联网公司的安全工程师建立了白帽子社区,旨在交流工作中遇到的各种问题及经验心得。 本书名为《白帽子讲Web安全》,即指站在白帽子的视角,讲述Web安全的方方面面。虽然也剖析攻击原理,但更重要的是讲如何防范。同时,也希望“白帽子”这一理念,能够更加广为人知,为中国互联网行业所接受。 吴翰清 2012年1月于杭州

目录

1 白帽子安全观 1 1.1 Web安全简史 1 1.1.1 黑客技术发展历程 1 1.1.2 Web安全的兴起 4 1.2 黑帽子,白帽子 5 1.3 返璞归真,揭秘安全的本质 6 1.4 破除迷信,没有银弹 9 1.5 安全三要素 10 1.6 如何实施安全评估 11 1.6.1 资产等级划分 11 1.6.2 威胁建模 13 1.6.3 风险分析 14 1.6.4 设计安全方案 15 1.6.5 态势感知 16 1.7 安全方案的设计原则 18 1.7.1 “默认安全”原则 18 1.7.2 “纵深防御”原则 19 1.7.3 “数据与代码分离”原则 21 1.7.4 “随机性”原则 23 1.8 小结 24 2 HTTP协议与Web应用 26 2.1 HTTP协议 26 2.1.1 HTTP协议简介 26 2.1.2 HTTP请求 26 2.1.3 HTTP响应 31 2.1.4 HTTP/2和HTTP/3 32 2.1.5 Websocket 34 2.2 Web服务器 35 2.3 Web页面 36 2.3.1 文档对象模型(DOM) 36 2.3.2 JavaScript 36 2.4 小结 37 3 浏览器安全 38 3.1 同源策略 38 3.2 浏览器沙箱 39 3.3 XSS保护 42 3.4 隐私策略 43 3.5 浏览器扩展 48 3.6 高速发展的浏览器安全 49 3.7 小结 51 4 Cookie和会话安全 53 4.1 Cookie和会话简介 53 4.2 第一方Cookie和第三方Cookie 54 4.3 Cookie属性 55 4.3.1 Domain属性 55 4.3.2 Path属性 56 4.3.3 Expires属性 57 4.3.4 HttpOnly属性 57 4.3.5 Secure属性 58 4.3.6 SameSite属性 59 4.3.7 SameParty属性 61 4.4 安全使用Cookie 62 4.4.1 正确设置属性值 62 4.4.2 Cookie前缀 62 4.4.3 保密性和完整性 63 4.5 会话安全 64 4.5.1 会话管理 64 4.5.2 固定会话攻击 66 4.6 小结 67 5 深入同源策略 68 5.1 同源策略详解 68 5.2 跨域DOM互访问 72 5.2.1 子域名应用互访问 72 5.2.2 通过window.name跨域 74 5.2.3 window.postMessage方案 74 5.3 跨域访问服务端 76 5.3.1 JSONP方案 76 5.3.2 跨域资源共享 77 5.3.3 私有网络访问 80 5.3.4 Websocket跨域访问 82 5.3.5 其他跨域访问 82 5.4 小结 82 6 跨站脚本攻击 84 6.1 XSS攻击简介 84 6.2 XSS攻击类型 86 6.2.1 反射型XSS攻击 86 6.2.2 存储型XSS攻击 87 6.2.3 基于DOM的XSS攻击 88 6.2.4 Self-XSS攻击 89 6.3 XSS攻击进阶 90 6.3.1 初探XSS Payload 90 6.3.2 强大的XSS Payload 91 6.4 XSS蠕虫 94 6.5 XSS攻击技巧 96 6.5.1 基本的变形 96 6.5.2 事件处理程序 96 6.5.3 JavaScript伪协议 97 6.5.4 编码绕过 98 6.5.5 绕过长度限制 99 6.5.6 使用<base>标签 101 6.5.7 window.name的妙用 102 6.6 JavaScript框架 102 6.6.1 jQuery 103 6.6.2 Vue.js 103 6.6.3 AngularJS 103 6.7 XSS攻击的防御 104 6.7.1 HttpOnly 105 6.7.2 输入过滤 105 6.7.3 输出转义 107 6.8 关于XSS Filter 122 6.9 小结 124 7 跨站请求伪造(CSRF) 125 7.1 CSRF简介 125 7.2 CSRF详解 126 7.2.1 CSRF的本质 126 7.2.2 GET和POST请求 127 7.2.3 CSRF蠕虫 128 7.3 防御CSRF攻击 130 7.3.1 验证码 130 7.3.2 Referer校验 130 7.3.3 Cookie的SameSite属性 131 7.4 Anti-CSRF Token 131 7.4.1 原理 131 7.4.2 使用原则 133 7.5 小结 135 8 点击劫持 136 8.1 点击劫持简介 136 8.2 图片覆盖攻击 139 8.3 拖拽劫持与数据窃取 140 8.4 其他劫持方式 142 8.5 防御点击劫持 143 8.5.1 Frame Busting 143 8.5.2 Cookie的SameSite属性 144 8.5.3 X-Frame-Options 144 8.5.4 CSP: frame-ancestors 145 8.6 小结 145 9 移动Web安全 146 9.1 WebView简介 146 9.2 WebView对外暴露 147 9.3 Universal XSS 148 9.4 WebView跨域访问 148 9.5 与本地代码交互 150 9.6 其他安全问题 151 9.7 小结 151 10 注入攻击 152 10.1 SQL注入 152 10.1.1 Union注入 153 10.1.2 堆叠注入 153 10.1.3 报错注入 154 10.2 盲注 154 10.2.1 布尔型盲注 154 10.2.2 延时盲注 155 10.2.3 带外数据注入 157 10.3 二次注入 158 10.4 SQL注入技巧 158 10.4.1 常见攻击技巧 158 10.4.2 命令执行 161 10.4.3 攻击存储过程 163 10.4.4 编码问题 164 10.4.5 SQL Column Truncation 166 10.5 防御SQL注入 166 10.5.1 使用预编译语句 167 10.5.2 使用存储过程 168 10.5.3 参数校验 169 10.5.4 使用安全函数 169 10.6 其他注入攻击 171 10.6.1 NoSQL注入 171 10.6.2 XML注入 172 10.6.3 代码注入 175 10.6.4 CRLF注入 183 10.6.5 LDAP注入 184 10.7 小结 185 11 文件操作 186 11.1 上传和下载 186 11.1.1 上传和下载漏洞概述 186 11.1.2 路径解析漏洞 188 11.1.3 文件上传与下载的安全 189 11.2 对象存储的安全 190 11.3 路径穿越(Path Traversal) 192 11.4 文件包含(File Inclusion) 194 11.5 小结 196 12 服务端请求伪造(SSRF) 197 12.1 SSRF攻击简介 197 12.2 SSRF漏洞成因 199 12.3 SSRF攻击进阶 199 12.3.1 攻击内网应用 199 12.3.2 端口扫描 200 12.3.3 攻击非Web应用 201 12.3.4 绕过技巧 203 12.4 SSRF防御方案 204 12.5 小结 205 13 身份认证 206 13.1 概述 206 13.2 密码的安全性 207 13.3 身份认证的方式 210 13.3.1 HTTP认证 210 13.3.2 表单登录 213 13.3.3 客户端证书 214 13.3.4 一次性密码 214 13.3.5 多因素认证 215 13.3.6 FIDO 215 13.4 暴力破解和撞库 217 13.5 单点登录 217 13.5.1 OAuth 218 13.5.2 OIDC 221 13.5.3 SAML 221 13.5.4 CAS 223 13.6 小结 224 14 访问控制 225 14.1 概述 225 14.2 访问控制模型 227 14.2.1 自主访问控制 227 14.2.2 基于角色的访问控制 228 14.2.3 基于属性的访问控制 229 14.3 越权访问漏洞 230 14.3.1 垂直越权访问 230 14.3.2 水平越权访问 231 14.4 零信任模型 233 14.4.1 基本原则 234 14.4.2 实现方案 236 14.5 小结 237 15 密码算法与随机数 239 15.1 加密、编码和哈希 239 15.2 安全使用加密算法 240 15.2.1 流加密算法 240 15.2.2 分组加密算法 242 15.2.3 非对称加密算法 245 15.3 分组填充和Padding Oracle攻击 246 15.4 安全使用哈希函数 255 15.5 关于彩虹表 257 15.6 安全使用随机数 259 15.6.1 伪随机数生成器 260 15.6.2 弱伪随机数 261 15.6.3 关于随机数使用的建议 262 15.7 密钥管理 263 15.8 信息隐藏 265 15.9 HTTPS协议 267 15.9.1 SSL和TLS协议的发展 268 15.9.2 HTTP严格传输安全(HSTS) 274 15.9.3 公钥固定 276 15.9.4 证书透明度(Certificate Transparency) 277 15.10 小结 277 16 API安全 279 16.1 API安全概述 279 16.2 常见API架构 280 16.2.1 SOAP 280 16.2.2 REST 280 16.2.3 GraphQL 282 16.3 OpenAPI规范 284 16.4 常见的API漏洞 285 16.5 API安全实践 289 16.5.1 API发现 289 16.5.2 生命周期管理 290 16.5.3 数据安全 290 16.5.4 攻击防护 291 16.5.5 日志和审计 291 16.5.6 威胁检测 291 16.5.7 使用API网关 292 16.5.8 微服务安全 292 16.6 小结 293 17 业务逻辑安全 294 17.1 账号安全 294 17.1.1 注册账号 294 17.1.2 登录账号 296 17.1.3 退出账号 297 17.1.4 找回密码 298 17.2 图形验证码 299 17.2.1 验证逻辑 299 17.2.2 强度 300 17.3 并发场景 301 17.3.1 条件竞争 301 17.3.2 临时数据 302 17.3.3 支付逻辑缺陷 303 17.4 小结 304 18 开发语言的安全 305 18.1 PHP安全 305 18.1.1 变量覆盖 305 18.1.2 空字节问题 306 18.1.3 弱类型 307 18.1.4 反序列化 307 18.1.5 安全配置 308 18.2 Java安全 309 18.2.1 Security Manager 309 18.2.2 反射 310 18.2.3 反序列化 312 18.3 Python安全 316 18.3.1 反序列化 316 18.3.2 代码保护 317 18.4 JavaScript安全 317 18.4.1 第三方JavaScript资源 317 18.4.2 JavaScript框架 318 18.5 Node.js安全 319 18.6 小结 319 19 服务端安全配置 321 19.1 “最小权限”原则 321 19.2 Web服务器安全 323 19.2.1 nginx安全 323 19.2.2 Apache HTTP Server安全 326 19.3 数据库安全 327 19.4 Web容器安全 329 19.4.1 Tomcat远程代码执行 330 19.4.2 Weblogic远程代码执行 331 19.5 Web中间件安全 332 19.6 日志与错误信息 334 19.6.1 日志的记录和留存 335 19.6.2 敏感信息处理 335 19.6.3 错误处理 336 19.7 小结 337 20 代理和CDN安全 338 20.1 正向代理 338 20.2 反向代理 340 20.3 获取真实IP地址 342 20.4 缓存投毒 343 20.5 请求夹带攻击 345 20.6 RangeAMP攻击 348 20.7 域前置(Domain Fronting) 349 20.8 小结 352 21 应用层拒绝服务攻击 353 21.1 DDoS简介 353 21.2 应用层DDoS攻击 357 21.2.1 CC攻击 357 21.2.2 限制请求频率 359 21.2.3 道高一尺,魔高一丈 360 21.3 防御应用层DDoS攻击 362 21.3.1 IP威胁情报库 362 21.3.2 JavaScript校验 363 21.3.3 客户端指纹 364 21.3.4 人机校验 366 21.3.5 访问行为识别 367 21.4 资源耗尽型攻击 367 21.4.1 Slowloris攻击 367 21.4.2 HTTP POST DoS 369 21.4.3 ReDoS 370 21.4.4 HashDoS 373 21.5 小结 374 22 爬虫对抗 375 22.1 揭秘爬虫 375 22.1.1 爬虫的发展 376 22.1.2 行业挑战 377 22.2 反爬虫方案 378 22.2.1 客户端特征 378 22.2.2 行为分析 379 22.2.3 图形验证码 381 22.2.4 IP信誉 381 22.2.5 代码保护 382 22.2.6 数据保护 384 22.3 爬虫对抗 385 22.4 小结 386 23 安全检测和防御 387 23.1 Web应用防火墙(WAF) 387 23.1.1 参数解析 389 23.1.2 攻击检测 393 23.1.3 日志分析 395 23.2 RASP 396 23.3 Web后门检测 401 23.4 小结 405 24 机器学习在安全领域的应用 406 24.1 机器学习概述 406 24.1.1 机器学习模型 407 24.1.2 模型指标 410 24.2 攻击检测 411 24.2.1 Web攻击检测 411 24.2.2 识别钓鱼网站 414 24.3 异常行为检测 415 24.4 自动化攻击 417 24.4.1 识别验证码 417 24.4.2 破译密码 418 24.5 攻击机器学习模型 420 24.5.1 对抗性攻击 420 24.5.2 信息窃取 423 24.5.3 模型投毒 423 24.6 小结 424 25 DevSecOps 426 25.1 为什么需要DevSecOps 426 25.2 DevSecOps原则 429 25.2.1 安全责任共担 429 25.2.2 安全培训 430 25.2.3 安全左移 430 25.2.4 默认安全 431 25.2.5 自动化 431 25.3 DevSecOps工具链 431 25.3.1 需求分析与设计 432 25.3.2 软件成分分析 433 25.3.3 安全测试 435 25.3.4 容器安全 439 25.3.5 代码保护 439 25.3.6 威胁检测和响应 440 25.4 小结 441

作者简介

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个