Chapter 9. 特定语言的问题

 

Undoubtedly there are all sorts of languages in the world, yet none of them is without meaning.

 1 Corinthians 14:10 (NIV)
Table of Contents
C/C++
Perl
Python
Shell脚本语言(sh及csh的变种)
Ada
Java

有许多特定语言的安全问题。许多可以做如下总结:

C/C++

C和C++程序最大的安全问题就是缓存溢出;参见有关缓存溢出一章以了解更多信息。C还有个额外的弱点就是不支持异常,这就使得在编程时很容易忽略关键的错误状态。

对于使用gcc进行C或C++编译,应该至少使用以下编译标识(打开一大批告警信息)并力图消除所有告警(注意,使用-O2是由于有些告警只能被在更高的优化情况下执行的数据流分析所检测到):
gcc -Wall -Wpointer-arith -Wstrict-prototypes -O2

对于发现潜在的安全漏洞可能会找到有些很有用的审计工具。下面就是几个这样的工具: