基本信息
- 原书名:Writing Secure Code,Second Edition
- 原出版社: Microsoft Press
- 作者: (美)Michael Howard,David LeBlanc
- 译者: 程永敬 翁海燕 朱涛江
- 丛书名: 计算机科学丛书
- 出版社:机械工业出版社
- ISBN:9787111112105
- 上架时间:2004-11-25
- 出版日期:2005 年1月
- 开本:16开
- 页码:480
- 版次:2-1
- 所属分类:计算机 > 安全 > 数据安全

编辑推荐
每年我们都会由于黑客攻击网络应用程序、窃取信用卡密码、破坏Wod站点、造成网速变慢等而花费无数的金钱,并带来无尽的烦恼。通过这本引人入胜、令人耳目一新的书,读者可以学到各种安全技术来防范黑客攻击。现在,这本书已经增加了新安全威胁以及从微软最近的安全推广活动中获取的教训。读者将学习到如何到整个发展过程中——从设计安全的应用程序到编写健壮的代码——加固自己的应用程序,从而能够经受住探进安全隐患的测试应用程序的重复攻击。书中解释了安全法则、策略和编码技术,这些技术有助于增强代码的抗攻击能力。本书的两位作者久经沙场,他们曾解决过行业中棘手的一些安全问题。书中还提供了许多例子代码来说明特定的开发技术。
内容简介
计算机书籍
<p>"在过去的20年间,计算机已经彻底改变了我们的生活方式。现在,从电信业、银行业到运输业,计算机已经成为所有重要基础设施的组成部分;另外,计算机中还保存有大量的敏感数据,如个人健康记录和财务记录。为了我们的未来,现在编写安全的软件比以往更为重要,每个软件开发人员都必须学习如何将安全性集成到项目当中。微软的每个人都必须阅读《编写安全的代码》这本书,它有助于我们向客户宣传"可信计算"模式,并为开发人员正确处理安全性提供必要的基础。"
--比尔·盖茨 微软公司首席软件架构师 </p>
<p>每年我们都会由于黑客攻击网络应用程序、窃取信用卡密码、破坏Web站点、造成网速变慢等而花费无数的金钱,并带来无尽的烦恼。通过这本引人入胜、令人耳目一新的书,读者可以学到各种安全技术来防范黑客攻击。现在,这本书已经增加了最新的安全威胁以及从微软最近的安全推广活动中获取的教训。读者将学习到如何在整个开发过程中--从设计安全的应用程序到编写健壮的代码--加固自己的应用程序,从而能够经受住探查安全隐患的测试应用程序的重复攻击。书中解释了安全法则、策略和编码技术,这些技术有助于增强代码的抗攻击能力。本书的两位作者久经沙场,他们曾解决过行业中最为棘手的一些安全问题。书中还提供了许多例子代码来说明特定的开发技术。
主要内容
现代安全:安全系统的需求,以及赖以生存的安全法则。<font color="#FF6600">新内容:</font>使用安全编码技术进行开发,威胁建模。
安全编码技术:头号公敌--缓冲区溢出,确定适当的访问控制,以最小特权运行,加密的弱点,保护机密数据,以及规范表示的问题。<font color="#FF6600">新内容:</font>防止有害输入,解决数据库输入问题,基于Web的错误(包括跨站点脚本),以及国际化问题。
更多的安全编码技术:Socket安全,安全DCOM、ActiveX和RPC应用程序,防范拒绝服务攻击,以及文件系统问题。<font color="#FF6600">新内容:</font>使用安全编码技术开发Microsoft.NET代码。
特殊话题:严格的测试安全应用程序的过程,安全的软件安装,通用的好做法。<font color="#FF6600">新内容:</font>进行一次安全代码审查,在应用程序中创建隐私策略,编写完整、清晰、一致的安全文档以及有意义的错误消息。
本书分为五部分。第一部分概括说明了保护系统安全的意义,以及设计安全系统的原则和所采用的技术,第二部分概括介绍了几乎适用于任何应用程序的重要编码技术,第三部分重点介绍厂网络应用程序和.Net代码安全;第四部分讨论的安全问题在一般图书中少有论及,如测试、进行安全代码审查、隐私策略以及安全的软件安装等问题,第五部分是附录,分别介绍危险的API以及分别适用于设计人员、开发人员和测试人员的安全措施核对清单。
作译者
《Designing SecureWeb-Based for Microsoft Windows 2000》的作者,致力于安全设计、安全编程和安全测试——这些都是Microsoft Windows开发小组中“安全Windows倡导活动”的一部分。他也是Microsoft安全系列推广活动的架构师之一。
David LeBlanc
Microsoft可信计算倡导活动的关键成员,致力于网络安全、编写网络审计工具、内部渗透测试的推广等。
目录
专家指导委员会
前言
第一部分 现代安全
第1章 对安全系统的需求
1.1 "疯狂的Web网"上的应用程序
1.2 可信计算的需要
1.3 让每个人都参与进来
1.3.1 巧妙地向企业推销安全
1.3.2 使用搞破坏的方法
1.4 灌输安全意识的一些主意
1.4.1 让老板发一封电子邮件
1.4.2 任命安全宣传员
1.5 攻击者的优势和防御者的劣势
1.5.1 因素1:防御者必须对所有的环节都进行防御,而攻击者可以选择最薄弱的环节
1.5.2 因素2:防御者只能针对已知的攻击进行防御,而攻击者则可以探测未知的漏洞
1.5.3 因素3:防御者必须永远保持警惕,而攻击者却可以随意"罢工"
1.5.4 因素4:防御者的活动必须遵循相应的规则,而攻击者则可以采用一些卑鄙的手段
1.6 本章小结
第2章 主动的安全开发过程
前言
Windows安全活动(以及许多其他的安全活动)的出发点,源于比尔·盖茨2002年1月15日发表的"可信计算"备忘录,其中概括说明了一种高级策略,即如何向用户提交更安全、更可靠的新型计算机系统。自从有了那个备忘录,我们已经与数千名开发人员交谈、合作过,而他们异口同声地说:"我们要做正确的事情……我们要开发安全的软件……但我们知道的还不够。"这种呼声是本书的直接催化剂:向他们传授学校里不教的技术--如伺设计、生成、测试和注释安全的软件。所谓"安全的软件",并不是指安全代码或实现安全特性的代码,而是指为抵挡恶意攻击而设计的代码。安全的代码也是健壮的代码。
本书的目标是绝对要保证切实可行,书中可能使读者产生不安全感,可能会感到自己的代码也许会受到攻击。更确切地说,如果你创建的应用程序要运行在一台或多台计算机上,而这些计算机连到了网络上,或最大的网络Internet上,那么你的代码就可能会受到攻击。
系统安全受到威胁后会造成各种严重后果,如生产力下降、信誉受损以及财产损失,如果攻击者能够破坏应用程序的安全(如,使之无法使用),你的客户就可能会转而使用竞争对手的产品。在使用基于Internet的服务时,大多数人都没有耐心,如果你的服务不好用,客户也会投奔你的竞争对手。
对于众多软件开发商来说,真正的问题是,安全所带来的效益不像开发过程那样是显而易见的。因此,管理层不愿意在培训开发人员以编写安全的代码方面多花钱,在攻击得逞之前,他们不想在安全技术上投资。然而,亡羊补牢,则为时已晚。事后的修补工作,无论是在财力上还是在信誉上,都要付出高昂的代价。
历史证明,最好的方法是保护财产,使之免遭盗窃和攻击。我们的祖先早就制定了对盗窃、损坏或侵占他人财物者的惩罚措施。的确,人们都明白,私人财物应当受到保护。这些道德准则也适用于数字世界,因此,作为开发人员,我们的部分职责就是创建可保护数字资产的应用程序和解决方案。
本书包括一些基本概念,这些内容在学校课程里介绍"设计和构建安全的系统"主题时应当讲过。读者可能会认为,"设计"是设计人员或管理人员的事情,但作为开发人员和测试人员,同样也需要了解设计良好的系统结构以抵御攻击的有关过程。
众所周知,无论花多少时间和精力来开发软件,开发出的软件仍然会存在漏洞,因为人们无法预测未来的安全问题。对于Windows Server 2003来说,同样也存在一些漏洞,但按照本书中所建议的方法,相信可以减少漏洞数,使黑客更难于发现和利用代码中的漏洞。
本书于者对象
本书适用于设计应用程序或生成、测试以及注释解决方案的人员。如果编写基于Web或基于Win32的应用程序,或者正在学习或开发基于Microsoft.NET框架的应用程序,本书同样是很好的读物。总之,只要工作中涉及到应用程序开发,都会在本书中找到许多值得学习的内容。
即使是正在编写不SMicrosoft平台上运行的代码,书中的许多内容依然非常有用。除了个别几章是完全针对Microsoft平台以外,许多问题往往与平台无关。即便有时某种东西似乎仅适用于Windows,但其通常也有更加广泛的应用。例如,Everyone用户的"安全控制"访问控制列表和UNIX系统上设置为"全部可写"的文件,其实是同一问题,而跨网站的脚本问题是普遍存在的。
本书组织结构
本书分为五个部分。第一部分(第1-4章)概括说明了为什么要保护系统安全免遭攻击,以及设计这种系统的原则和分析技术。
第二部分和第三部分是本书的重点。第二部分(第5-14章)概括介绍了几乎适用于任何一种应用程序的重要的编码技术。第三部分(第15~18章)重点介绍了网络应用程序和.NET代码。
第四部分(第19-24章)讲述了一般图书中很少讨论的一些主题,如测试、进行安全代码审查、隐私策略以及安全的软件安装等问题。第23章介绍了放在其他各章都不太合适的一些一般原则。
第五部分是"附录",包括5个附录,分别介绍危险的API,我们常听到的一些不考虑安全问题的荒谬借口,以及分别针对设计人员、开发人员和测试人员的安全措施核对清单。
与其他作者不同,我们不仅告诉你应用程序如何不安全,而且告诉你为什么人们不愿意构建安全的系统。本书绝对实用,书中解释了系统怎样会受到攻击,人们常犯的错误,以及如何构建安全的系统--这才是最重要的。
安装和使用范例文件
通过连接到站点http://www.microsoft.com/mspress/books/5957.asp,可以从Web上下载本书的范例文件(从Companion Content页下载)。要访问范例文件,请单击该页右侧More Information框中的Companion Content链接,打开Companion Content页,此页中包括下载范例文件的链接:也可以连接到Microsoft Press Support站点。下载链接可打开一个包含许可协议的可执行文件。要想把范例文件复制到硬盘上,请单击运行可执行文件的链接,然后接受许可协议。默认情况下,范例文件将被复制到My Document\Microsoft Press\Secureco2文件夹下。在安装过程中,可以改变目标文件夹。
系统要求