安全的C ++编码实践

时间:2011-01-24 09:29:27

标签: c++ security secure-coding

我正在寻找C ++中安全编码实践的全面记录。 由于我还没有在这里找到这样的列表,我们不妨将其变成社区维基,以供进一步参考。 我正在寻找安全问题的解决方案,如基于堆栈和堆的缓冲区溢出和下溢,整数溢出和下溢,格式字符串攻击,空指针解除引用,堆/内存检查攻击等。

注意:除了编码实践之外,还可以提及抵御这类攻击的安全库。

LE:正如MSalters在评论中所建议的那样,这个问题被分为两个单独的问题,一个用于C ++,另一个用于C语言。 另请参阅Secure C coding practices

6 个答案:

答案 0 :(得分:3)

本书Writing Secure Code非常擅长解释安全问题以及如何避免安全问题。这本书已经出版了一段时间,但所涵盖的大部分主题仍然相关。

答案 1 :(得分:3)

Herb Sutter“Exceptional C ++”和“C ++编码标准”。非常宝贵的。

Marshall Cline C++ faq。会告诉你关于常见陷阱的一切。免费在线。

答案 2 :(得分:1)

我发现这本书非常有用Secure Programming Cookbook for C and C++: Recipes for Cryptography, Authentication, Input Validation & More

与前面提到的Writing Secure Code, Second Edition不同,Linux(posix)和Windows都有很多例子。

答案 3 :(得分:1)

Joint Strike Fighter Air Vehicle C++ Coding Standards 虽然它主要适用于可靠性而非安全性,但它是一个良好的开端。

答案 4 :(得分:1)

SEI CERT C++ Coding Standard专门用于涵盖所有类型的安全问题。 CERT代表计算机紧急响应小组,它是处理计算机安全事件的专家组。

答案 5 :(得分:-1)

让我开始吧

  • 避免动态分配 内存使用malloc
  • (相关)使用固定大小 尽可能使用数组,或者在C ++中实际避免使用C风格数组
  • 避免使用(void *)