C和C++安全编码(原书第2版)是C/C++安全编码领域的权威著作,被视为“标准”参考书,由国际资深软件安全专家撰写,美国CERT主管亲自作序推荐。本书结合国际标准C11和C++11,以及C和C++语言的最新发展,既详细阐述了C/C++语言及其相关库固有的安全问题和陷阱,系统总结了导致软件漏洞的各种常见编码错误,并给出了应对错误的解决方案;又对C/C++软件中常见漏洞的危害、被利用方式、检测方法和应对之道进行了全方位讲解,包含大量编码练习,实践性强。
C和C++安全编码(原书第2版)从C和C++语言的各个部分分别介绍了可能导致安全问题的软件漏洞:第1章介绍安全术语和概念,并指出为何C和C++程序中存在如此多的漏洞。第2章描述C和C++中的字符串操作、常见的安全缺陷以及由此导致的漏洞。第3章介绍任意内存写漏洞利用方式,它允许攻击者对内存中任意位置的一个地址进行写操作。第4章描述动态内存管理,讨论了动态分配的缓冲区溢出、写入已释放内存,以及重复释放漏洞。第5章讨论整数安全问题(即与整数操作相关的安全议题),包括整数溢出、符号错误以及截断错误等。第6章描述格式化输出函数的正确和错误的用法,对因这些函数的错误使用所导致的格式字符串和缓冲区溢出漏洞都有讨论。第7章重点介绍并发和可能导致死锁、竞争条件和无效的内存访问序列的漏洞。第8章描述和文件I/O相关的常见漏洞,包括竞争条件和检查时间与使用时间漏洞。第9章推荐一些可以整体改善C/C++应用程序安全性的具体开发实践,这些建议是对每一章中用于解决特定漏洞问题的推荐做法的补充。
C和C++安全编码(原书第2版)目录
第1章 夹缝求生
第2章 字符串
第3章 指针诡计
第4章 动态内存管理
第5章 整数安全
第6章 格式化输出
第7章 并发
第8章 文件I/O
第9章 推荐的实践