常被利用的软件漏洞通常都由本可避免的软件缺陷造成。通过对1988年以来几万份漏洞报告的分析。CERT确定了引起绝大多数漏洞的少数原因。《C和C++安全编码(英文版第2版)》识别并解释了这些原因,展示了可以采取哪些措施来防止它们被利用。此外,本书鼓励程序员采用安全的最佳实践,培养安全的理念,以保护软件不仅免受现在的攻击,也免受未来的攻击。根据CERT的报告和结论,Robert C.Seacord(西科德)系统地识别了最有可能导致安全漏洞的程序错误,显示了它们被利用的方式,考察了其潜在的后果,并提出了安全的替代方案。
西科德编著的《C和C++安全编码(英文版第2版)》主要内容
·提高任何C或C++应用程序的整体安全性;
·阻止利用不安全的字符串操作逻辑进行缓冲区溢出、栈溢出以及面向返回值的编程攻击;
·避免因不正确使用动态内存管理函数而导致的漏洞和安全缺陷;
·消除因有符号整数溢出、无符号整数回绕和截断误差而导致的整数相关问题;
·执行安全的I/O操作,避免文件系统漏洞;
·正确使用格式化输出函数,避免引入格式字符串漏洞;
·在开发并发代码时,避免竞争条件和其他可利用的漏洞。
《C和C++安全编码(英文版第2版)》介绍了数以百计Windows和Linux上的例子,包括安全的代码、不安全的代码和利用方法。如果你负责创建安全的C或C++软件,或者需要保证它们的安全,本书将为您提供详尽的专家级援助。
Chapter 1 Running with Scissors
Chapter 2 Strings
Chapter 3 Pointer Subterfuge
Chapter 4 Dynamic Memory Management
Chapter 5 Integer Security
Chapter 6 Formatted Output
Chapter 7 Concurrency
Chapter 8 File I/O
Chapter 9 Recommended Practices