咨询培训 著译作品关于荣耀 Bjarne Stroustrup 网络资源 九炉堂 日志联系站内搜索首页

著译作品

《C和C++安全编程》

Secure Coding in C and C++, by Robert Seacord

荣耀 罗翼 译

www.royaloo.com

译序

现代社会离不开计算机软件系统的顺畅运行。然而总有一些黑客或骇客为了政治、经济或纯粹的个人满足目的攻击软件系统,其中大部分得逞的攻击是因为软件系统自身存在漏洞。尽管事后的补救措施可以在一定程度上减少损失,然而如果在软件创建之初就避免引入漏洞,攻击者就无法轻易获得下手的机会。避免软件引入漏洞首先是程序员的责任。C和C++语言的天性导致程序员必须小心谨慎才能编写出没有漏洞的程序。

Robert Seacord是SEI CERT/CC资深漏洞分析师,具有二十多年的编程经验,洞悉C和C++在软件项目中的应用状况,这本书可以说专门为C和C++程序员而写(尽管其他语言的开发人员或技术管理者也可以从本书中深深受益),并不要求读者事先掌握多少计算机安全背景知识。作者显然善于讲解复杂的技术,深入浅出地阐述了软件中的各种安全漏洞及成因,给出了很多著名的安全漏洞例子,并揭示黑客如何利用程序中的漏洞侵入并破坏系统。

保障软件系统的安全主要有两种方式:配置安全和编程安全,前者面向系统管理员和系统用户,后者则要求程序员掌握安全的编程技术。也许完全消除漏洞是难以达到的目标(世界上根本不存在没有臭虫的软件),但程序员可以组合使用多种方式尽可能消除软件缺陷。作者展示了许多不安全的编程习惯和相应的改进措施,推荐了有效的软件工具和经过验证的方法,有助于我们编写出更健壮、更不容易遭受攻击的软件系统。

每一位开发商业和项目软件系统的C或C++程序员都应该阅读本书,尤其是那些编写会被很多用户通过互联网下载安装的软件的程序员,那些编写控制电力、电信、金融、军事、航空、航天等关键设施的软件系统的程序员,以及其他所有认为自己编写的软件对他人很重要的程序员。对于有漏洞的软件系统,即使没有遭受黑客的恶意攻击,出乎意料的输入或操作也可能会导致灾难性的后果。由于每一个安全漏洞也可能是导致程序崩溃或产生错误输出的缺陷,因此,即便没有黑客或骇客盯上我们的软件,程序员也有责任保证软件系统没有漏洞。

使用Java或C#之类的语言编写软件无疑可以少引入安全漏洞,然而C和C++语言的地位无法被取代。为何使用C和C++语言编程?因为对效率和灵活控制底层的苛求。如果你是一名C或C++程序员,希望本书在带给你宝贵的技术和良好阅读体验的同时,也能为你带来危机感——现在就复审以前的代码是否存在安全漏洞,并避免在未来的代码中引入安全漏洞。毕竟编写无漏洞的软件需要的不单是技术,更有高度的责任感。

感谢读者朋友给与的一贯支持,你们的批评和赞扬对我来说同样重要。感谢初译者罗翼先生作出的贡献。感谢机械华章的陈冀康先生、周茂辉编辑以及所有其他为本书出版做出贡献的不知名的人士。感谢导师王建东老师的理解与支持。感谢朱艳和荣珅,你们是我生活的全部。

祝各位阅读快乐!

荣耀
2009年5月
南京师范大学
www.royaloo.com

目录

  • 1 夹缝求生
  • 2 字符串
  • 3 指针诡计
  • 4 动态内存管理
  • 5 整数安全
  • 6 格式化输出
  • 7 文件I/O
  • 8 推荐的实践

出版信息

  • 书 号: 978-7-111-26148-3
  • 页 数: 242
  • 开 本: 16
  • 定 价: 45元
  • 印 数: 未知
  • 出版日期: 2009年11月
  • 出 版 社: 机械工业出版社