微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在编写 C 代码时实现内存安全?

如何解决如何在编写 C 代码时实现内存安全?

我最近在一次采访中被问到以下问题:“在编写 C 代码时实现内存安全的所有可能方法是什么?”

回复了 API 的安全版本。面试官说,还有更多的方法。我想问一下实现内存安全的方法列表是什么。

解决方法

  • 在释放内存时总是使用 NULL out 指针以避免 Use-After-Free 错误和双重释放错误
  • 始终执行边界检查以避免OOB(越界)读取和OOB写入漏洞
  • 尽量不要使用递归,或者在知道自己的极限时才使用它,从而防止堆栈耗尽和堆耗尽漏洞
  • 如果您怀疑某个指针随时可能为 NULL,请在使用之前始终检查它以避免 NULL 指针解引用漏洞
  • 使用多线程强化机制来避免导致内存安全错误的竞争条件
  • 总是初始化指针和变量,特别是在没有事先赋值的情况下使用/访问它们时
  • 始终确保字符串正确地以 NULL 结尾,以避免内存泄漏和其他内存安全问题
  • 确保复制函数,特别是在使用循环时,设计得当,不会超过一个字节进入后续缓冲区或变量(一对一漏洞)
  • 仔细选择类型和强制转换以避免整数溢出等问题

还有更多……

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。