你��能想知道微软为什么要出版这样一本关于**测试的书,因为加强软件**是一件非常困难的事情。当然,微软已经遇到过相当多的软件**问题,因而有大量的经验供测试人员参考。在2002年可信计算计划被提出之前,我们就已经在微软工作了。自微软实施该计划以来,我们已经看到微软在处理**问题方面的重大改变。现在,**问题已经不仅仅是**专家的职责,已经成为了我们每一个人的责任。这本具有创见性的关于软件**测试的书,源于我们在微软的工作经验以及为开发出用户购买后能持续**可靠运行的软件而做出的努力。
应用软件的**并不仅仅局限于使用**技术的功能特征,以及像加密和账户管理这样的功能特征。我们必须认真考虑一个产品的每个功能特征的**。鉴于此,在微软工作的每个项目管理人员、开发人员、测试人员和相关技术人员都有责任保证软件尽可能**。本书认为**是每个人的责任,并且**向测试人员提供用来发现软件功能**漏洞的信息,这些**漏洞都可能是难以发现的。
本书没有阐述这些漏洞应该如何修补。其他的一些书,如Michael Howard和David LeBlanc所写的《Writing Secure Code》(微软出版社,2002年)是一本从编写代码的角度阐述如何修补和防止**漏洞的**参考书。
微软因为发布了含有**缺陷的软件而经历了一些惨痛的教训,后来微软不得不通过**更新来修补这些缺陷。本书描述了现在许多软件中存在的**问题,并包含了一些已经带来损失的漏洞信息,以及我们在产品发布前自己发现的一些漏洞信息。我们希望你能从我们的经验中学到知识,从而在发布自己的软件时防止产生类似的**漏洞。
在本书中,我们把能够被另外一名用户控制的数据称为“攻击者已控数据(Attacker Controlled Data)”。我们这么做,是要让你不仅意识到应用程序所操作的数据有可能来自攻击者,还应该树立攻击者的意识,认识到你也能控制这些数据。我们鼓励你不但要像攻击者那样带有恶意的想法去思考,而且在测试软件时还要扮演攻击者,攻击你自己的系统,以此来帮助公司发现软件的**漏洞。
本书的目的就是为了促进你的测试工作,能够开发出更好的软件,而不是让你攻击其他人的软件,或者利用攻击者的恶意想法或技术去分析不属于你测试范围的软件。本书是一本为白帽黑客而写的书。
软件**一直在快速地发展。未来我们将面临今天所不知道的危险攻击。但是无论如何,本书讨论的以攻击者的角度、采用攻击者的方法进行**测试的步骤,并不会发生太大的改变。