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

Web应用漏洞侦测与防御:揭秘鲜为人知的攻击手段和防御技术
作者 : (美)Mike Shema 著
译者 : 齐宁 庞建民 张铮 单征 等译
出版日期 : 2014-08-11
ISBN : 978-7-111-47253-7
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 246
开本 : 16
原书名 : Hacking Web Apps: Detecting and Preventing Web Application Security Problems
原出版社: Elsevier (Singapore) Pte Ltd
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书讲解网络安全技术,尤其是如何打造Web应用的安全性,预防蠕虫、木马、僵尸等黑客的攻击。书中提供了大量数据,揭示黑客的攻击情况,讲解了最普通的黑客攻击方法,包括:HTML注入攻击、XSS、跨站请求、SQL注入攻击、破坏认证架构、登录攻击、可疑网站、浏览器攻击等。黑客只需知道浏览器和HTML的少量知识即可进行攻击,因此这些知识也是安全的必备知识。即便是不开发Web网站的程序员,也可以从本书了解如何预防网站的攻击,提高网站与浏览器的安全性。

图书特色

本书由国际知名网络安全专家亲笔撰写,全面讲解如何预防常见的网络攻击,包括HTML注入及跨站脚本攻击、跨站请求伪造攻击、SQL注入攻击及数据存储操纵、攻破身份认证模式、利用设计缺陷、利用平台弱点、攻击浏览器和隐私等。
全书共8章:第1章介绍HTML5的新增特性及使用和滥用HTML5的安全考虑;第2章展示了如何只通过浏览器和最基本的HTML知识就可以利用Web中最常见的漏洞;第3章详细讲解CSRF(跨站请求伪造)攻击的实现机制及应对策略;第4章介绍如何执行SQL注入攻击,并探究了类似攻击的实现机制,提供一些阻止这些攻击的对策;第5章介绍Web站点保护密码失败的常见方式以及阻止这些攻击所能采取的步骤;第6章主要探讨网站底层设计中会导致漏洞的错误;第7章介绍应用程序代码可能引发的错误,以及不应当忽略的其他安全性问题;第8章将探讨更多浏览器面临的各种风险。
“本书对于安全领域技术人员以及领导者同等重要,我建议所有开发Web应用或抵御最新Web应用攻击的人都来阅读本书,一定可以从中获得专业知识。”
——Doug Steelman,戴尔Secureworks首席安全官
“本书介绍了困扰着Web应用程序的最有威胁的漏洞及其基本概念,书中还介绍了其他漏洞并显示了多种漏洞之间的关联,而且可读性非常强”。
——Robert Hansen,Falling Rock Networks and SecTheory公司CEO
如何跟踪Web中的攻击?方法之一是阅读本书。本书作者是信息安全领域的领军人物之一,他精心选定的内容涵盖了当前最恶毒的攻击。作者不仅对这些攻击进行了剖析,还介绍了如何清除和防御蠕虫、特洛伊木马、僵尸网络等。书中详细描述了应对措施,使你能够在攻击演化过程中对它们进行抵抗。
即使你没有开发过Web站点或用HTML编写过代码,这本书仍然能够帮助你了解网络攻击,以及防御这些攻击的最佳方式。此外,本书还详细给出了如何使浏览器更加安全的步骤,有时候浏览器会是你的最后一道防线。
越来越多的数据正在进入Web应用,从财务数据到照片。从任何地方的浏览器中访问到的数据都是安全的吗?
有时候,对网站危害最大的攻击,执行起来所需要的仅仅是Web浏览器而已,要求的知识也无非是对HTML略有了解。
应了解最常见的威胁以及如何阻断它们,包括HTML注入、XSS、跨站请求伪造、SQL注入、攻破身份验证模式、逻辑攻击、浏览器攻击等。
作者简介
Mike Shema?国际知名的网络安全专家,现就职于Qualys,专注于自动化Web评估服务。之前曾是Foundstone信息安全咨询公司首席咨询师和培训师,在网络渗透测试、无线网络安全、代码审核、Web安全等方面有丰富的经验,撰写了多部信息安全技术图书,如《黑客大曝光:Web应用安全机密与解决方案》、《反黑客工具箱》和《黑客札记:Web安全手册》,并经常在世界范围的安全技术大会上演讲。

主要译者简介
齐宁 解放军信息工程大学博士,曾讲授课程有“信息安全”“网络原理与实践”等,曾参研国家重大专项611工程、国家863项目等,涉及漏洞发现技术、逆向分析技术、高性能计算机体系结构等领域。

图书前言

关于Web的格言或警句中,你最喜欢哪一个?这些格言或警句很可能会涉及Web安全或网站所面临的威胁。本书通过黑客最经常利用的8组安全弱点及漏洞,试着阐明复杂难解的Web安全性问题。对读者来说,其中一些攻击可能很熟悉,而另外一些攻击可能是出乎意料或者比较陌生的,因为这些攻击并未登上头条新闻或进入到前十大新闻中。攻击者可能会针对一些底层公共特性进行利用,这也是为什么诸如跨站脚本攻击和SQL注入攻击引起了人们广泛关注的原因。更厉害的攻击者可能会把网站设计的工作流或假设中的模糊之处当作目标,利用这些结果会获得巨大经济收益,但可能只对某个网站有效,这种方式的优势在于不会像SQL注入等攻击那样暴露出攻击者的信息。
在Web上,信息就是金钱。信用卡显然对黑客有巨大的价值,不断出现非法信用卡交易网站对盗来的信用卡通过论坛、用户反馈和卖家评价等进行交易。我们的个人信息、密码、电子邮件帐户、线上游戏账户等都有其价值,更不用说我们尽力使这些内容保密所付出的努力的价值。目前的现实就是经济间谍以及国家资助的网络攻击被人们普遍关注和夸大,其实更缺乏的是可靠的公共信息。(对Web安全而言,“网络战争”存在与否无关紧要,我们更加关注的是如何应对这些。)真实世界中人、公司或国家之间的几乎所有骗局、欺骗、诡计等在Web上都存在,因为非法获取Web上有价值的信息很诱人,可以是为了荣誉、国家、金钱,或纯粹出于好奇心。
本书学习要点
本书的每一章都给出了针对Web应用程序的不同攻击实例。首先会探究这些攻击所采用的方法,然后展示这些攻击潜在的影响,这些影响可能是针对网站的安全性或用户的隐私。攻击甚至可能不会将重点放在攻破某个Web服务器,而是聚焦于攻击浏览器。Web安全性对应用程序和浏览器的影响是类似的,毕竟,它们都是存放信息的地方。
每章中接下来的内容会从攻击的不同角度给出相应的应对措施。应对措施是很棘手的事物,在设计出好的防御措施之前,必须要理解攻击的工作方式,还要清楚这些应对措施的局限性以及不能覆盖的漏洞。安全是网站的整体属性,不是单个保护措施的累加。本书中某些应对措施会被反复提到,有些应对措施可能仅出现一次。
本书面向的读者
使用Web收取电子邮件、购物或工作的人都将会从本书受益,他们可以了解网站如何泄露个人信息以及怎样隐藏恶意内容。网站开发人员肩负着网站安全性的最大责任,同时用户也有自己的责任。用户的责任主要体现在维护最新的浏览器、注意密码的使用、警惕类似社会工程这类非技术攻击。
Web应用程序开发人员和安全专家将会从本书介绍的Web攻击背后的技术细节和方法中受益。提升网站安全性的第一步就是要能够理解应用程序面临的威胁,理解不好的编程习惯会导致安全弱点,该弱点会导致漏洞,而漏洞会导致数百万用户密码从未加密的数据库中泄漏出去。另外,有几章深入探讨了与编程语言或支撑特定站点的技术无关的有效应对措施。
行政管理层能够从本书中理解Web站点面临的威胁,而且会看到在很多案例中,仅仅需要一个浏览器并动动脑筋,这种简单攻击就能对站点和它的用户带来负面影响。这同样说明尽管很多攻击易于执行,但好的应对措施仍需时间和资源才能得到正确实现。这些要点为分配资金和资源以提高网站安全性,进而保护Web站点管理的大量信息财富提供有力的论据。
本书假定读者对Web具有基本的了解。Web安全攻击主要依赖于通过操纵HTTP数据包来注入有效负载或利用协议中的缺陷。攻击者同样需要掌握HTML来操纵表单或注入代码,从而控制浏览器。这并不是粗略理解攻击或学习黑客如何攻破某个网站的先决条件。例如,一开始只要熟悉HTTP协议默认使用80端口进行不加密传输,安全套接层(SSL)或安全传输层协议(TLS)协议使用443端口进行加密传输,使用https://的站点指定TLS传输。如果开发人员或安全专家希望对攻击和防御的方法进行深入研究,则必须了解更多技术细节。本书力求呈现准确的信息,但并不追求严格地区分使用只有细微差别的术语,如URL同链接可以互换使用,Web站点和Web应用程序也是如此。但愿对破解的概念以及应对措施的描述足够清楚,习惯于阅读标准和规范的人不会对本书不加区分地引用“HTML标签”和“HTML元素”等术语感到不满。我们的目的是了解破解并从学习中感到快乐。
已经熟悉Web基本概念的读者可以跳过下面的两节。
现代浏览器
在本书中很少提及具体的浏览器版本。最主要的原因是绝大多数的攻击者通过标准的HTML进行攻击,或只是针对与浏览器无关的服务器端技术。缓冲区溢出攻击和恶意软件关注浏览器的具体版本,但针对Web站点的攻击很少关注这一点。另一个原因是浏览器开发人员一般都采取了自动升级方法,或至少有非常快的发布流程,意味着浏览器基本能够保持最新状态,这对用户的安全而言是一个有利的趋势。最后,就像我们在第1章中将要介绍的,HTML5仍旧是一个新兴标准。在本书中,“现代浏览器”是指任何支持HTML5部分特性的浏览器或呈现引擎(记住,可以通过各类设备访问HTML)。可以肯定地说,当你阅读本书时,如果你的浏览器在最近两个月内进行了更新,那么它就是现代浏览器,如果浏览器是一年前的,它也很有可能是现代浏览器,但如果超过一年,那就放下书去更新吧,这对你会有帮助。
曾几何时,开发Web应用程序时,程序员还要考虑不同浏览器的市场份额或必须考虑浏览器呈现中的怪异模式,这已经成为了过去。类似IE6这种已经“逝去”的浏览器仍然能够呈现当今的大部分网站,是工程设计及标准(网络、HTTP、HTML等)值得称道的一个壮举。然而,已经没有必要在今天继续使用这些老古董了。如果微软希望IE6消失,网站就没有理由再乐于支持它,事实上,对于那些内容和使用都要求更高程度的安全性及隐私保护的网站,应当主动拒绝过时的浏览器的访问。
“域”搞定一切
Web浏览器在不同的平台上已经经过数次的更新换代:Konqueror、Mosaic、Mozilla、Internet Explorer、Opera、Safari等。浏览器的核心中有一个呈现引擎,微软IE的引擎为Trident,Safari和Chrome的引擎为Webkit,Firefox的引擎为Gecko,Opera的引擎为Presto。这些引擎负责把HTML呈现为DOM(Document Object Model,文档对象模型)、执行JavaScript、提供Web页面布局,最终提供安全的浏览体验。
同源策略(Same Origin Policy,SOP)是浏览器的基本安全边界。内容的能力和可视性受限于最初加载资源的源内。不像低成本恐怖电影中,来自某个区域的恶魔会在另一个区域中肆虐,浏览的上下文应当从它建立起就受限于其所在的域了。域是为浏览上下文获取资源的协议、主机名(host)和端口号(port)的组合。我们将会多次讲到SOP,第1章先介绍HTML5如何放宽SOP的限制。
所需背景知识
本书远不能详细地涵盖相关主题。多种攻击方法和应对措施都涉及密码学,例如哈希、盐值、对称加密、随机数等。有一些章节涉及数据结构、编码、算法等知识,还有些章节涉及正则表达式。这些概念会描述得足够清楚,即使你第一次接触它们,也应该可以知道它们同黑客攻击及应对措施的关联。当需要更多背景知识时,会给出一些建议阅读的资料。本书应当会引起你对此类主题的好奇。一名好的安全从业者或Web开发人员应当对很多主题都很熟悉,即便对更深的数学或理论细节可能还有些模糊。
对本书而言,最重要的安全工具是Web浏览器,它往往是对Web站点进行攻击所需要的唯一工具。Web应用程序漏洞利用所涉及的技术即包括复杂的缓冲区溢出,也包括对URI中单个字符的操纵。第二重要的工具是能够发送原始HTTP请求的工具,下面的这些工具可以对浏览器做极好地补充。
Netcat是网络安全工具的鼻祖,它执行一个基本的功能,即打开网络socket。该命令的威力在于可以向socket发送任何内容并且捕获其响应。多数Linux系统或OS X默认提供该工具,通常作为nc命令。它在Web安全中的最简单用法如下所示:

Netcat的缺点之一是不支持SSL协议。幸运的是,OpenSSL命令提供了相同的功能,只需对命令行进行略微改动。例子如下:

同命令行工具相比,本地代理提供了一个用户界面更加友好的Web安全评估方案。命令行便于自动化,但代理更有助于分析Web站点的弱点并理解Web请求背后所发生的事情。
风险、威胁、弱点、漏洞、漏洞利用
一些读者可能会注意到本书刻意避免了对所介绍的攻击手段进行排名。就像《Animal Farm》(译者注:英国著名作家乔治 奥威尔的一部反乌托邦寓言小说)中的Napoleon和Snowball一样,某些Web安全漏洞比其他漏洞更重要。风险、影响和威胁等概念要求与Web应用程序的上下文和环境相关的信息,不能一概而论。
威胁可能来自黑客、匿名者(Anonymous,用大写A代表)、犯罪集团、海啸、磁盘故障、绊掉电源线、心怀不满的程序员等任何能够对网站带来负面影响的因素,他们就像演员一样,以你的网站作为舞台。
Dan Geer对安全有一个形象的描述“没有什么意外不能被缓解”。从这里看,风险可以从预期、检测和防御某些事情的能力的角度来衡量。影响风险的因素很多:威胁、Web站点或被保护信息的价值、你认为目前Web站点有多么安全,网站被攻击之后恢复的难易程度,等等,这些因素中很多都很难度量。
如果你的Web站点存在漏洞,那么这就是一个bug。威胁可能来自漫无目的的黑客或一名能力很强的、执着的黑客。根据度量标准的不同,风险可以是高或低。风险也可以有区别,有可能是用来注入一个指向恶意软件的iframe,或者用来给网站设一个后门以窃取用户的证书。在任何情况下,修复漏洞总是好的。通常,修复bug要比确定利用它来进行攻击的威胁更容易。事实上,如果这个bug(不管是否与安全有关)难以修复,那么就表示那里存在着高风险。
不对漏洞进行评级并不代表我们漠视这个概念。威胁建模是一个有助于思考针对Web站点的潜在安全问题或攻击的杰出工具。OWASP网站总结了建造这些模型的不同方法,网址是https://www.owasp.org/index.php/Threat_Risk_Modeling。微软的STRIDE(http://www.microsoft.com/security/sdl/adopt/threatmodeling.aspx)是一个很好的面向威胁的参考文献。Common Weakness Enumeration(常见弱点枚举)采取的是另一种方式,列出了威胁所针对的各类编程错误,网址是http://cwe.mitre.org/。
本书的结构
本书共有八章,描述针对网站以及浏览器的黑客攻击。每章都提供了针对真实站点进行攻击的实例,接着会研究漏洞利用的细节。读者不需要严格按顺序阅读本书。很多攻击方法都互相关联或组合,从而使特定的应对措施失效。这就是为什么我们要理解网络安全的各个方面,尤其需要注意的是Web安全既包含浏览器安全,也包括站点安全。
第1章:HTML5
一个新标准的产生意味着会出现新的漏洞,同时也意味着利用原有漏洞会有新方法。该章介绍HTML5标准的部分主要API和特性。HTML5可能还不是正式标准,但它现在已经广泛用在浏览器和Web站点中。它不仅牵扯到安全,而且对信息的隐私性也有影响。
第2章:HTML注入及跨站脚本攻击
该章描述了在Web站点中最广泛且最容易利用的漏洞之一。XSS漏洞就好像Web中的蟑螂,总是潜伏在站点意想不到的角落中,不论站点的大小或名气,也不论其安全团队多么老练,都要面对这个问题。该章展示了如何只通过浏览器和最基本的HTML知识就可以利用Web中最常见的漏洞,另外还说明了Web站点和浏览器之间的紧耦合从安全角度而言是如何变成一种脆弱关系的。
第3章:跨站请求伪造
第3章继续介绍以Web站点和浏览器为目标的漏洞。跨站请求伪造(Cross-Site Request Forgery,CSRF)攻击欺骗被攻击者的浏览器,使其发送并非代表用户意愿的请求。这些攻击很隐蔽并且很难阻挡,毕竟从技术角度而言,每个Web页面都容易受到CSRF攻击。
第4章:SQL注入攻击及数据存储操纵
该章的重点是Web应用程序以及驱动这些应用程序的数据库。SQL注入攻击被人们认为是信用卡盗窃的根源。该章揭示了基于这个简单漏洞,可以有很多其他漏洞利用的方法,还展示了与成功的攻击带来的巨大影响相比,它的应对措施相对简单且易于实现。即便你的网站中没有SQL数据库,它仍旧可能容易受到类似SQL注入的数据注入、命令注入等攻击。
第5章:攻破身份认证模式
第5章包含了计算机安全中最古老的攻击之一:针对登录提示进行密码暴力破解。但是暴力破解攻击并不是攻破网站身份认证模式的唯一途径。该章还介绍了其他攻击手段以及对网站进行保护的应对措施。
第6章:利用设计缺陷
第6章介绍了一种更有趣的攻击类型,它不需要攻击者有很强的技术实力,只需要有基本的好奇心即可。针对网站业务逻辑的攻击变化很多,但是大部分攻击采用类似的技术,或者利用网站设计中的失误,使攻击者可以获得直接的经济收益。该章讨论了站点如何组成一个整体,攻击者如何为了个人利益找出漏洞,以及开发人员在面对这类没有合适编程清单的问题时能做些什么。
第7章:利用平台弱点
即使一个Web站点的编码非常安全,它的安全性也会因为配置不当而减弱。该章解释了服务器管理员可能犯下哪些错误,从而把网站暴露在攻击之下。该章还介绍了如果网站开发人员在站点的某些区域把安全建立在假定之上,而不是深思熟虑的举措之上,就可能给攻击者留下立足点。
第8章:攻击浏览器和隐私
最后一章将Web安全问题重新引回到浏览器。该章包含了恶意软件发展成为Web威胁的历史。该章还讲述了用户在网站的安全脱离自己掌控的情况下如何保护自身的安全。
进一步的目标
学习新的安全技术或巩固已有技术的最佳途径就是亲手实践。本书为找出并阻止漏洞提供了实例和方法描述。强化本书中的知识的最佳方法之一就是针对真实Web应用程序运用这些知识。通常,在网络上随意选择一个网站进行攻击是不道德的,甚至是非法的。然而,在这方面的安全观念正在慢慢改变。如果对Google的某些Web特性进行了尽责的测试,Google会提供现金奖励。Twitter同样公正地对待负责的测试。这些举措并不意味着可以对网站进行全权授权地攻击,尤其是盗取信息或侵犯他人隐私的攻击。但是,你会发现很难找到其他欢迎反馈或报告漏洞的更复杂的网站。
有一些培训网站,例如Google的Gruyere(http://google-gruyere.appspot.com/)、OWASP的WebGoat(https://www.owasp.org/index.php/Webgoat)、DVWA(http://www.dvwa.co.uk/)。更妙的是,还可以搜索SourceForge(http://www.sf.net/)、Google Code((http://code.google.com/)和GitHub(https://github.com/)来寻找开源Web应用程序。你可以下载并安装一些Web应用程序。部署一个网站的过程(修复bug或调整设置来安装bug)可以帮助你建立起真实Web站点概念、编程模式及系统管理的经验。这些基本知识对理解安全性而言,比收集攻击检查列表更为重要。在你安装完成PHP、Python、.NET、Ruby、Web应用程序之后,就可以开始寻找漏洞了。可能会有SQL注入问题,或者没有过滤POST数据以防止跨站脚本攻击。不要一味寻找Web应用程序的最新发布版本,寻找有着在最新版本中已经修复的bug的老版本,对比不同版本之间的差异,能够使你发现别人是如何采用的应对措施,甚至有些情况下你可以发现某些应对措施并不恰当。
为数众多的移动应用以及Web公司的巨大估值,使得Web安全问题在未来相当长的一段时间内仍然会受到极大的重视。欢迎访问本书配套网站http://deadliestwebattacks.com/,网站中提供了一些代码实例、意见建议、新闻、新技术以及本书的更新。
开始你的破解之旅吧!

上架指导

计算机\安全

封底文字

“本书对于安全领域技术人员以及领导者同等重要,我建议所有开发Web应用程序或抵御最新Web应用程序漏洞利用的人都来阅读本书,一定可以从中获得专业知识。”
            ——Doug Steelman,戴尔Secureworks首席安全官
“本书介绍了困扰着Web应用程序的最有威胁的漏洞及其基本概念,书中还介绍了其他漏洞并显示了多种漏洞之间的关联,而且可读性非常强”。
         ——Robert Hansen,Falling Rock Networks and SecTheory公司CEO

如何跟踪Web中的攻击、破解和漏洞利用?方法之一是阅读本书。本书作者Mike Shema是信息安全领域的领军人物之一,他精心选定的内容涵盖了当前最恶毒的攻击。作者不仅对这些攻击进行了剖析,还介绍了如何清除那些蠕虫、特洛伊木马、僵尸网络,以及如何对它们进行防御。书中详细描述了应对措施,使你能够在攻击演化过程中对它们进行抵抗。
即使你没有开发过Web站点或用HTML编写代码,这本书仍然能够帮助你学习网站是如何被攻击的,以及防御这些攻击的最佳方式是什么。此外,本书还详细给出了如何使浏览器更加安全的步骤,有时候浏览器会是你的最后一道防线。

? 越来越多的数据正在进入Web应用,从财务数据到照片。从任何地方的浏览器中访问到的数据都是安全的吗?
? 有时候,对网站危害最大的攻击,执行起来所需要的仅仅是Web浏览器而已,要求的知识也无非是对HTML略有了解。
? 应了解最常见的威胁以及如何阻断它们,包括HTML注入、XSS、跨站请求伪造、SQL注入、攻破身份验证模式、逻辑攻击、不信任的网络、浏览器攻击等。

作者简介

(美)Mike Shema 著:暂无简介

译者简介

齐宁 庞建民 张铮 单征 等译:暂无简介

译者序

当前,随着智慧城市、物联网、大数据等社会信息化进程的推进,我国政府、金融、海关、交通、能源和现代服务及工业控制等关键领域均实现了信息化,但不容忽视的现实是,这些关键领域信息基础设施或设备却几乎都被外国少数公司的产品垄断,而且绝大部分核心元器件、高端芯片、基础工具软件等也都严重依赖进口,网络空间安全形势非常严峻。
  网络空间的攻击技术也在迅速发展,且已进入自动化程度高、攻击速度快、攻击工具复杂、潜伏更隐蔽的高级阶段。网络犯罪、网络恶意攻击几乎时时刻刻都在上演,而导致这些问题发生的最大安全隐患正来自于网络的核心:Web应用程序。
  本书的每一章都针对某类攻击方式,不仅探究其攻击方法、机理及影响,而且还给出可能采取的应对措施。通过对本书的阅读和理解,有助于了解如何对Web应用从多角度实施安全保护措施,做到防患于未然,使得网站拥有者或网站开发人员有信心面对安全相关的威胁与挑战。
  本书由齐宁、庞建民、张铮、单征进行主要章节的翻译,杨劲、王俊超、于锦涛、党林玉、薛飞也参与了本书的部分翻译工作。
  本书作者是信息安全领域的领军人物之一。虽然我们付出了许多努力,查阅了大量参考资料,力求在充分理解的基础上尽可能准确地完成翻译,为读者奉献一本优秀的译著,但由于书中涉及的知识和技术范围很广,错误或不当之处仍难避免,敬请读者和同仁谅解,诚挚希望读者发现错误时使用电子邮件与我联系:qining2005@126.com。

齐宁
2014年4月

图书目录

译者序
前 言
第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

教学资源推荐
作者: 邹德清 代炜琦 金海 著
作者: 马洪连,刘旸,韩瑜,孙亮
作者: 周学广 等
作者: 姚羽 张建新 杨巍 田志宏 编著
参考读物推荐
作者: 大学霸IT达人 编著
作者: (美)Thomas W.Shinder, Debra Littlejohn Shinder
作者: Dan Farmer, Wietse Venema