在“可信赖的计算”理念指导下,微软从设计、缺省及部署三大方向来强调计算机系统的安全性。为此,微软制定了“Palladium计划”。这是一项极其复杂的确保电脑系统安全的计划。如果成功的话,电脑将在硬件中储存安全证书,来控制用户对计算机的使用,并对任何发往计算机的可执行代码和文档等等加以验证。它可以让用户确保敏感数据的安全、挡住垃圾邮件和病毒,并确保只有被批准的软件才能在计算机上运行。事实上,微软对于安全的重视来源于它在系统安全方面较差的口碑,脆弱的软件系统已经成为业界诟病、打击微软威望的有力武器,尤其是2001年来,针对微软系统安全漏洞发动的攻击不计其数,其提高软件安全性的动机只能从其企业自身发展需要中寻找。
在这样的背景下,《编写安全的代码》可以说是生逢其时了。
在计算机孤立存在的时候,攻击和安全的问题不会、也不需要有人来重视,可今天的情形却正如作者所说的:“当今的Internet环境不可思议地充满着敌意”,所以对于所有开发人员来讲,在设计程序的时候,都必须把安全问题牢记在心。
《编写安全的代码》就是要在这样的时代背景下“教人们以安全的方式设计、编写和测试应用程序”,作者的目标是通过不断的实践,让读者能够真正领会安全的重要性并养成安全的习惯,把安全问题作为贯穿开发过程始终的重要问题,并通过大量的实例来展示安全编码的要义。在书中,作者反复强调“安全的代码(secure code)”并不是指“安全性代码(security code)”或实现安全功能的代码——好比说在制造车辆的时候,到底是从一开始就把它设计成装甲车还是等车辆生产出来之后再安装防弹玻璃。无疑,作者更倾向于前者,作者希望能够通过本书,让读者把安全的“基因”从一开始就“种植”在软件中。
本书共分为四大部分:第一部分是“现代安全”;第二部分是“安全的编码技术”;第三是“基于网络的应用程序”部分;在附录里,作者还给出了危险的API列表与安全建议、格言式的十条安全法则与安全管理员的十条法则以及对安全误区的提醒。
《编写安全的代码》的作者Michael Howard和David LeBlanc都是享誉已久的安全专家。Howard从1992年就开始从事Windows NT安全方面的研究,曾经作为主要作者编写过Design Secure Web-Based Applications for Microsoft Windows 2000,现在负责Windows XP安全方面的设计;LeBlanc作为微软高信度计算安全性小组的高级安全技术专家,负责保卫微软的网站免受黑客攻击,曾经因其在Internet安全系统方面的突出贡献荣获ISS安全产品奖。
微软对《编写安全的代码》一书非常重视,据称比尔·盖茨要求微软的开发人员都必须阅读此书,微软Windows部门副总经理Brian Valentine也亲自为本书作序。当安全问题已经成为或者说即将成为你必须直面的问题时,我相信本书中有许多你所需要的答案。