C安全编码标准:开发安全、可靠、稳固系统的98条规则(原书第2版)
编辑推荐
C语言安全编程的难度可能超乎许多有经验的程序员的想象。为了帮助编程人员编写更安全的代码,本书提供了CERT C安全编码标准第二个正式发行版本的完整文档。这个新版本中的规则有助于确保程序员的代码完全遵循新的C11标准;它也处理早期版本(包括C99)的问题。
新标准列举了当前C语言软件漏洞的根源,按照严重性、利用的可能性和补救成本排定优先级。书中的98个指导方针都包含了不安全代码和对应的C11相容安全实现。如果统一应用,这些指导方针将消除导致缓冲区溢出、格式字符串漏洞、整数溢出和其他常见漏洞的严重编码错误。
内容简介
本书是业界最广泛采纳的编程指导原则汇编 ,它紧扣各个版本的C语言标准,分门别类地介绍了各种可能引发可利用安全漏洞的未定义行为、未指定行为,提出了安全编码的规则和建议,在每条规则和建议上都用现实的相容及不相容代码示例加以说明,本书是该标准文档的第2版,加入了对最新的C11标准的支持,对于所有有志于C语言软件开发的技术人员来说,都是不可或缺的参考书。 全书共14章,包括98条编码规则,每条规则都由一个标题、一段说明和不相容/相容的代码示例组成。第1章讲述与预处理器相关的规则;第2章介绍的规则与声明和初始化相关;第3章介绍的是与表达式相关的规则;第4~7章讲述的规则分别与整数、浮点数、数组及字符和字符串相关;第8章介绍与内存管理相关的规则;第9章讲解的规则与输入/输出相关;第10章介绍的规则与环境相关;第11~13章分别讲解与信号、错误处理和并发性有关的规则;第14章讲述几条杂项规则。最后提供3个附录,分别包括本书使用的词汇表、未定义行为和未指定行为。
作者简介
Robert C. Seacord 是卡内基-梅隆大学软件工程研究所(SEI)CERT计划的安全编码技术经理。CERT项目是运营相关网络安全研究和对美国网络安全挑战创新/及时响应的可信提供商。安全编码倡议和软件开发人员及软件开发组织合作,在部署之前消除由于编码错误造成的安全漏洞。Robert还是卡内-基梅隆大学计算机科学学院和信息网络学院的副教授。他曾经撰写过8本书籍,包括《Secure
Coding in C and C++》第2版和《Java Coding Guidelines: 75 Recommendations for Reliable
and Secure
Programs》等。他还发表过40篇软件安全性、基于组件的软件工程、基于Web系统设计、遗留系统现代化、组件储存库和搜索引擎以及用户界面设计和开发方面的论文。