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

Web应用程序的黑客防范
作者 : (美)Jeff Forristal 等
译者 : 耿亦兵 秦凯 等
出版日期 : 2002-04-01
ISBN : 7-111-09948-6
定价 : 42.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 328
开本 : 16开
原书名 : Hack proofing Your Web Applications
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书从黑客技术发展、入侵原因和攻击类型人手,深入介绍了在开发Web应用程序时存在的安全隐患,着重从代码磨工和移动代码的角度阐述了产生安全问题的实质;通过对Java、JavaScript、XML、ActiveX和ColdFusion等常见语言的剖析,强调了可采取的安全预防措施;总结了开发安全Web应用程序的方法,并指导读者如何制订全面的安全计划。
  本书结构合理、内容详实,既可以作为开发人员开发Web安全系统的参考书,又可以为网络管理员、系统管理员在管理网络、预防黑客方面提供有效的安全策略,同时也可以作为网络安全和Web安全的普及性读物。本书附有光盘,光盘包含原书(本书英文版)中的主要内容。

图书特色

Chris Broomes(MCSE、MCT、MCP+I、CCNA),是 DevonIT(www.devonitnet.com)的一位资深网络分析员,DevonIT是一家专注于网络安全和VPN解决方案的网络服务提供商。Chris致力于IT业八年之久,积累了丰富的技术经验,他是地处LansdOWne的网络咨询公司Infinite Solution集团公司(www.infinitesols.com)的创始人和首席执行官,同时又是网络设计、系统集成、安全服务、技术编写和培训方面的产品分析员。Chris精通Cisco和Netscreen的VPN和安全设备,目前,他正在争取CCDA和CCNP证书。
  Jeff Forristal是 Neohapsis公司的安全开发主管,Neohapsis是一家基地设在芝加哥的安全解决方案的咨询公司。Jeff除了致力于网络安全评估和应用程序安全检查(包括源代码检查)外,同时又是 Security klert Chnsensus(安全报警舆论)的核心,这是由Neohapsis、NetworkComputing(网络计算)和SANS协会出版的有关安全报警通信的周刊。
  Drew Simonis(CCNA)是Fiderus Strategic Security和 Privacy Services(专用服务)的一位安全顾问。他是信息安全方面的专家,具有安全法则、事故响应、人侵检测和防御、网络与系统管理等方面的经验,精通TCP/IP数据网络和UNIX(特别是AIX和Solaris),熟悉路由、交换和网桥等技术。Drew曾经参与为AT&T、IBM和它们的几个客户开发几个大型Web应用程序,其中包括计划和开发了诸如在线银行、自助客户机,以及用于一家大型国家保险公司的在线自适应性保险评估平台。Drew现在主要是协助客户进行一些网络和应用安全方面的评估,同时也从事着开发方面的研究。Drew是MENSA的一名成员,拥有多种证书,包括IBM认证专家、 AIX 4.3系统管理员、AIX 4.3通信、Sun Microsystem认证的 Solans安全管理员。Checkpoint认证的安全管理员和安全工程师。他居住在佛罗里达州的Tampa。
  Brian Bagnall(Sun认证的Java程序员和开发员)是《Sun Certified Programmer for Java 2Study Guide》一书的作者之一。Brian是加拿大西部的 Idleworks公司的首席程序员, Idle-works主要是针对大中型企业使用超级计算机,研究分布式处理系统的解决方案。Brian曾在IBM公司开发过客户端应用程序,还是Leos(一个Java软件开发包)的一名关键程序员。Brian在此感谢他的家人的支持,尤其是他的父亲Herb。
  Michael Dinowitz是高访问流量的 ChldFusion邮件列表CF-Talk的主管,其订阅数量超过了Fusion.com。Michael主要是给Fusion Authority Weekly New Alert(www.fusionauthority.com/alert)写作并出版论文,著有 ChldFusion版本的《FuseBox:Methodogy and Techniques》,是非常畅销的《ColdFusion Web Application Construction Kit》的合作作者之一。无论从他研究oldFusion的深度和广度,还是他呈现给读者的著作中,都很明显地显示出他对这种语言的热爱,除Allaire外,很少有人会如此致力于某种语言的传播及其团体力量的增强。
  Jay D.Dyson是 Onesecure公司(一家可信的数字安全服务提供商)的一位资深的安全顾问,同时是美国国家航空航天局(NASA)的兼职安全顾问。其业余工作包括维护TreaCh-ery.Net,是Attrition.Org创建人之一。
  Joe Dulay(MCSD)是IT Age公司的技术副总裁。IT Age公司是位于亚特兰大的一家项目管理和软件开发企业,专门提供面向客户的业务经营服务和电子商务解决方案。他目前的责任是管理IT事业部,掌管技术咨询委员会、软件体系结构、电子商务产品的管理,负责优化开发过程和方法。尽管他目前的主要工作精力放在管理和总体设计方面,他仍然是开发小组的积极参与者。Joe从Wisconsin大学获得计算机科学学士学位。他的工作背景还包括在SiemensEneygy and Automation的高级开发人员的职位,他也是致力于电子商务开发的独立承包商。 Joe非常感谢他的家庭一直所给予他的帮助。
  Michael Cross(MCSE、MCPS、MCP+I、CNA)是微软认证的系统工程师、产品专家。Professional+I和Novell管理员。Michael现任Niagara Regional Police Service的网络管理员。Internet专家和程序员,他负责网络安全管理、应用程序开发,是www.nrps.com的站点管理员。他曾参与和帮助过与计算机和Internet相关犯罪案件的调查,是给超过800多名国内用户做技术支持的信息技术小组 (Information Technology Team)的成员。
  Michael还主管Knishtware公司,该公司主要提供咨询、编程、组网、网页设计、计算机培训和其他服务。他曾经是加拿大安大略湖(伦敦)私立大学和技校的一名讲师,他做过几年自由作家,出版过20多本著作和文选。Michael目前同他妻子fiancee Jennifer居住在加拿大安大略湖的Catharines大街。
  Edgar Danielyan( CCNA)目前就职于自已经营的公司,他毕业于British Institute of LegalExecutive、(英国法官学院),获得公司法文凭,又在University of Southern Colorado(美国科罗拉多州南方大学)取得助理律师资格。他曾经做过网络管理员,是亚美尼亚高级经理,也曾经在联合国、军队、国家电信局、银行等部门工作过,还做过律师事务所的助手。他会说四种语言,喜欢喝好茶,是ACM、IEEE CS、USENIX、CIPS、ISOC和IPG等组织的成员。
  Davd G.Scarbrough是美国教育网络的一位资深开发人员,在该组织中他担任ChldFusion开发小组首席成员。他主要是致力于研究电子商务网站的开发,David持有ChldFusion 4.5认证,在HTML、Javascript、PHP、Visual Basic、ACtive X、Flush 4.0和 SQL Server 7.0等语言的使用方面有丰富经验,他同时还是一名程序员和计算机科学家。David毕业于Montgotwry的TroStateUniversity(特洛伊州立大学),获得计算机科学学士学位。他居住在TN的Smyrna。


图书前言

如果程序代码中存在许多安全隐患,但又不能等待审核人员,更不能等待客户从中寻找瑕疵或错误,那该怎么办?本书将帮助你从应用程序开发的最早阶段就开始考虑安全问题。想要代码能够完全地避免遭受恶意的攻击,这是不可能的,但是通过本书的指导和建议,肯定将极大地减少受到攻击的可能性,或者减轻受到攻击时破坏性的扩大。
  本书详细地介绍了如下关于防范黑客的关键技术:
  安全过程的研究、计划、设计和编写都必须具体考虑到各机构,它应该包括网络安全计划、应用程序安全计划和桌面安全计划。所有开发者、管理员和质量保证小组成员都应该参与计划的制定,最终弄清自己在安全过程中扮演的角色。
   对于应用程序的安全性来说,测试是一个基本的组成部分。通过正反两方面的测试实例,安全性测试应该尽可能地真实,就像真的受到黑客攻击一样。如果安全防御体系十分牢固,黑客费尽时间和精力也达不目的,可使其锐气大减。
   开发过程中,由于技术快速发展,开发人员必须紧跟上所使用的开发工具的变化和升级,这一点非常重要。很多时候,补丁或新版本工具已经发布,但却迟迟没有使用,这就是因为缺乏忧患意识,或者被其他一些工作给耽搁了。
   开发人员、Web网站管理员和网络管理员必须清楚地了解目前存在的来自网络安全方面的威胁,其实,可以通过浏览诸如www.SecurityFocus.com或者www.cert.org等Web站点获得这方面的最新消息。对于开发者来说,这些站点不仅列出了目前关于网络安全一些新的观点,而且还为他们寻求相关安全性建议和解决方案提供了论坛。
  安全性应该是多层次的,并且每一层都是很复杂的。在某些情况下,对于一种编程语言是安全的,但对另一种也许就不安全。本书的基本目标是使开发人员了解每一个编程平台所固有的安全问题,并且提供一些合理的解决方法。
  第1章"黑客方法论",给出对黑客团体和它的各种动机的基本认识和理解。第2章"代码磨工",讨论了作为一个程序员必须进行"创造性"思考的重要性,解释了没有完全理解代码的用法、功能以至于安全问题就进行开发的危险性。影响创造性和分析性思考常常包括以下因素:由某些管理机构控制和受商业利益(它又会受到体力上和智力上的安全注意点限制)驱动的工作环境、行业标准、对旧技术的依赖,以及成本和最后期限等,这类环境都没有办法进行公开评估和测试。第3章"移动代码的危害性",在用户安全和应用程序前提下,探讨了使用 VBScipt、 Java Script、 ActiveX控件,以及其他形式的移动代码带来的危险因素。使用这类功能强大的代码时,应用程序的功能和它的真正安全性就会大打折扣。第4章"易受攻击的CGI脚本",解释了在Web HTTP服务器中使用外部程序而导致的脆弱性。第 5章"黑客技术和工具",展示了在一次成功的攻击过程中,小虾恶意的黑客可能采用的各种不同工具、技术和攻击类型。第6章"代码审计与逆向工程",通过对不同语言环境中的源代码执行逆向跟踪,直至可能产生安全问题的用户输入,针对开发人员怎样才能认识到代码中的安全问题,该章开始了一些实践性的讨论,并提供了一些具体方案。第了8.9和10章研究了诸如Java、JavaScript、XML、ActiveX和ColdFusion等语言不同类型的安全问题。第11章"开发安全的应用程序",介绍了PGP、数字签名、认证服务和为给Web应用程序建立可视化安全性的PKI。最后,第12章"制订安全计划指导工作",指导读者在实施新代码时,如何进行代码复审,它可作为一项保险策略。
                             --Julie Traxler


作者简介

(美)Jeff Forristal 等:暂无简介

译者简介

耿亦兵 秦凯 等:暂无简介

译者序

随着计算机网络的普及,越来越多的人已不再对因特网陌生,人们的工作、学习、生活已经离不开网络。在我国,相信经常使用网络的人对计算机病毒也木会陌生,对付计算机病毒的方法也许只会依靠几个杀毒软件。然而可曾知道计算机病毒攻击仅仅是黑客众多攻击方法中的一种。了解黑客攻击技术,能有效地保护自己的Web应用程序的人员更是屈指可数。一方面,因特网在我国的发展时间还比较短;另一方面,有关揭露黑客技术,提供给网络管理人员、系统开发人员和广大用户安全策略的相关书籍也十分缺少。随着屡屡爆发的黑客大战和频频发生的黑客攻击事件,保护网络系统和数据的安全,抵御黑客的袭击迫在眉睫。
  本书的出版为广大关心网络安全问题的计算机工作者提供了有价值的参考。本书系统地介绍了Web应用程序的安全策略,包括存在的安全隐患、预防及补救措施,开发安全的应用程序的方法和指导原则。
  如果读者从未阅读过有关网络安全方面的书籍,或者只是浏览过一些书中的个别章节,那么依照本书章节从头顺序阅读将是一个很好的选择。书中循序渐进的内容将会使读者对Web应用程序的安全策略有一个系统的认识;如果你已经了解黑客技术并对网络安全有一定了解,你可以跳过第1章,继续后面的阅读;对于系统管理员和网络管理员,你可以跳过第八已9、10章有关分析代码的章节,但对于开发人员或程序员这些章节就不能不看了;不管你是那一类人员,最后两章的阅读都会对你有所帮助。
  概括地说,本书与传统的计算机网络安全书籍相比,除了保留系统性、严谨性的风格外,还广泛介绍了黑客简史、黑客攻击过程、各种网络编程语言存在的缺陷等,并将安全计划摆到了突出的位置上。
  本书由耿亦兵、秦凯主持翻译。参加翻译工作的有:郭文明、严静东。宋春文、王宁、李景华、赖建荣、苏忠、张少华、李思伟、雷军红、王传芳。全书由战晓苏主审。其他参加翻译和审校工作的还有:张敬松、杨天梁、张志刚、刘世华、邹德新、蔗林光、王友军、华书重。刘庶忠、张华勋、徐哲铭、胡向京、武文、夏刚、秦晓周、方林、徐飞、涂卫东、王为聘、李建政。
  本书内容新,翻译难度较大,为了使本书中文版尽快与读者见面,译者做了很大努力,但由于翻译时间非常紧迫,加之译者水平有限,错误和疏漏在所难免,恳请广大读者批评指正。
  2001年 11月

图书目录

第1章 黑客方法论
1.l 概过
1.2 黑客简史
1. 2. 1 电话系统黑客
1.2.2 计算机黑客
1.3 产生黑客的原因
1.3.l 黑客的两面性
1. 3.2 与安全专家共事
1.4 当前存在的几种攻击类型
1. 4.1 DoS/DDoS
1.4. 2 病毒攻击
1.4. 3 窃取
1.5 Web应用程序面临的安全威胁
1.5.l 隐藏操作
1.5.2 参数篡改
1.5.3 站际脚本
1.5.4 缓冲区溢出
1.5.5 cookie毒药
1.6 预防黑客人侵
1.7 小结
1.8 解决方案快速检索
1.9 常见问题
第2章 代码磨工
2.l 概述
2.2 代码磨工简介
2.3 创造性地编码
2.4 从代码磨工的角度考虑安全问题
2.5 创建功能安全的Web应用程序
2.5.l 代码实现了它的功能
2.5.2 比功能更重要的安全问题
2.5.3 安全和功能兼得
2. 6 小结
2.7 解决方案快速检索
2. 8 常见问题
第3章 移动代码的危害性
3. 1 概述
3. 2 移动代码攻击产生的影响
3. 2.l 测览器攻击
3.2.2 客户端邮件系统攻击
3. 2.3 恶意脚本或者宏
3.3 认识基本形式的移动代码
3.3.1 宏语言:VBA
3.3.2 JavaScript
3.3.3 VBScript
3.3.4 Java小程序
3.3.5 ActiveX控件
3. 3.6 电子邮件附件和下载的可执行程序
3. 4 保护系统免受移动代码攻击
3.4.1 安全软件
3.4.2 基于Web的工具
3. 5 小结
3. 6 解决方案快速检索
3. 7 常见问题
第4章 易受攻击的CGI脚本
4.1 概述
4. 2 认识CGI脚本
4.2.1 CGI脚本的典型用法
4. 2.2 何时选择CGI
4.2.3 CGI脚本的主机问题
4. 3 蹩脚的CGI脚本导致的非法入侵
4.3.l 编写牢固的CGI脚本
4.3.2 可搜索索引命令
4.3.3 CGI封装程序
4.4  tol脚本的编程语言
4.4.1 UNIX Shell
4.4.2 Perl
4.4.3 C/C++
4.4.4  Visual Basic
4.5 CGI脚本的优点
4. 6 编写安全的CGI脚本的规则
4. 7 小结
4.8 解决方案快速检索
4.9 常见问题
第5章 黑窑技术和工具
5.1 概述
5.2 黑客的目标
5.2.l 减小被检测到的可能性
5,2.2 扩大访问权限
5.2.3 损失,损失,损失
5.2.4 反败为胜
5.3 黑客攻击的五个阶段
5.3.1 勾画攻击地图
5.3.2 制订可行计划
5.3.3 寻找突破口
5.3.4 持续深人访问
5.3.5 攻击
5.4 社会工程术
5.5 恶意的"后门"攻击
5.6 利用代码或编程环境的先天性缺陷
5.7 行业工具
5.7.1 十六进制编辑器
5.7.2 调试器
5.7.3 反汇编器
5.8 小结
5.9 解决方案快速检索
5.10 常见问题
第6章 代码审计与逆向工程
6.1 概述
6. 2 如何有效跟踪程序
6.3 审计和评估几种程序设计语言
6. 3. 1 Java
6.3.2 Java Server Puges
6.3.3 Active Server Pages
6. 3.4 Server Side Includes
6.3.5 Pytnon
6.3.6 Tool Command Language
6.3.7 PracticalExtraction and ReportingLanguage
6.3.8 PHP:Hypertext Preprocessor
6.3. 9 C/C++
6.3.10 ColdFusion
6.4 寻找弱点
6.4.l 从用户那里获得数据
6.4.2 查找缓冲区溢出
6. 4.3 检查对用户的输出
6.4. 4 检查文件系统的存取歧互
6. 4.5 检查外部程序和代码的执行情况
6.4.6 检查结构化查询语言(SQL)/数据库查询
6.4.7 检查网络和通信报文流
6.5 综合考虑
6.6 小结
6.7 解决方案快速检索
6.8 常见问题
第7章 保护Java代码
7.l 概述
7.2 Java安全体系概述
7.2.1 Java安全模型
7.2.2 沙盘
7.3 Java的安全处理机制
7.3.1 类加载器
7.3.2 字节码校验器
7.3.3 Java保护域
7.4 Java的潜在弱点
7.4.1 DoS攻击用医务降级攻击
7.4.2 第三方特洛伊木马攻击
7.5 编写安全而有效的Java applet
7.5.1 消息文摘
7.5.2 数字签名
7.5. 3 身份识别
7. 5.4 使用JAN签名来保证安全
7. 5.5 加密
7.5.6 Sun Microsystems对Java的安全建议
7.6 小结
7.7 解决方案快速检索
7. 8 常见问题
第8章 保护XML
8.1 概述
8.2 XML的定义
8. 2. 1 逻辑结构
8.2. 2 元素
8.2.3 XML和XSL/DTD文档
8.2.4 XSL模板的使用
8.2. 5 XSL模式的使用
8.2.6 DTD
8.3 使用XML创建Web应用程序
8.4 使用XML伴随的风险
8.5 保护XML
8.5.1 XML加密
8.5.2 XML数字签名
8.6 小结
8.7 解决方案快速检索
8.8 常见问题
第9章 保护ActiveX网络控件
9.1 概述
9.2 使用ActiveX伴随的危险
9.2.1 避免ActiveX的常见弱点
9.2.2 减少ActiveX弱点的影响
9.3 编写安全ActiveX控件的方法
9.4 保护ActiveX控件
9.4.1 控件签名
9.4.2 标记控件
9.5 小结
9.6 解决方案快速检索
9.7 常见问题
第10章 保护ColdFusion
10.l 概述
10.2 ColdFusion的工作方式
10.2.l 充分利用快速开发的优点
10.2.2 ColdFusion标记语言
10.3 保护ColdFusion的安全
10.3.l 安全开发
10.3.2 安全配置
10.4 ColdFusion应用程序处理
10.4.1 数据存在性检验
10.4.2 数据类型检验
10.4.3 数据赋值
1O.5 使用ChldFusion伴随的危险
10. 6 使用逐个会话跟踪
10. 7 小结
10.8 解决方案快速检索
10.9 常见问题
第11章 开发安全的应用程序
11.1 概述
11.2 使用安全应用程序的好处
11.3 应用程序中使用的安全类型
11.3.1 数字签名
11.3.2 Pretty Good Privacy
11.3.3 安全多用途网际邮件扩充协议
11.3.4 安全套按字协议层
11.3.5 数字证书
11.4 PKI基础知识回顾
11.5 使用PKI保护Web应用程序
11.6 在Web基础结构中实现PKI
11. 6.1 Microsoft的证书服务
11.6.2 Netscape证书服务
11.6.3 Apache服务器的PKI
11.6.4 PKI和安全软件包
11.7 测试安全实现
11.8 小结
11.9 解决方案快速检索
11.10 常见问题
第12章 制订安全计划指导工作
12.1 概述
12.2 代码审查
12.2.l 代码审查
12.2.2 对等代码审查
12.3 意识到代码的脆弱性
12.4 编码时使用常识
12.4.1 计划编制
12.4. 2 编码标准
12.4.3 工具
12.5 制订安全计划
12.5.l 网络级安全计划
12.5.2 应用程序级安全计划
12.5.3 桌面级安全计划
12.5.4 Web应用程序安全处理
12.6 小结
12.7 解决方案快速检索
12.8 常见问题


教学资源推荐
作者: [英]Ross J.Anderson
作者: [美]斯瓦鲁普·布尼亚(Swarup Bhunia) 马克·特赫拉尼普尔(Mark Tehranipoor) 著
作者: [加] 林晓东(Xiaodong Lin) 著
参考读物推荐
作者: [美]克里斯·桑德斯(Chris Sanders) 杰森·史密斯(Jason Smith)著
作者: [美]尤里·迪奥赫内斯(Yuri Diogenes),[阿联酋]埃达尔·奥兹卡(Erdal Ozkaya) 著
作者: 李燕 林卫华 杨春明 秦志华 赖胜枢 著
作者: [美]克里斯·奇尔德霍森(Chris Childerhose) 著