安全C编码实践

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

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

LE:正如本问题中所见, 安全C ++编码实践,但仅适用于C语言。

CERT C“事实上的”标准是众所周知的,并在某种程度上解决了这些问题:

SEI CERT C编码标准

市场上应该有几个支持CERT C的静态分析仪。

相同答案C和C ++安全编程手册:密码学,身份validation,输入validation等的配方

从描述:

读者将学习:

  • 如何避免常见的编程错误,例如缓冲区溢出,竞争条件和格式字符串问题

  • 如何正确启用SSL应用程序

  • 如何在没有SSL的情况下为客户端 – 服务器通信创建安全通道

  • 如何将公钥基础结构(PKI)集成到应用程序中正确使用加密技术的最佳实践正确validation程序输入的技术和策略

  • 如何安全地启动程序

  • 如何正确使用文件访问机制

  • 保护应用程序免受逆向工程的技术