微软开源了CheckedC语言的扩展版本,可以解决一系列安全隐患

微软开源了Checked C[1],它是C语言的扩展版本,可以用来解决C语言中一系列与安全相关的隐患。顾名思义,Checked C 为 C 语言添加了检查。这种检查可以帮助开发人员检查常见的编程错误,例如缓冲区溢出、越界内存访问、不正确的类型转换等。这些编程错误往往是许多重大安全漏洞的根本原因,例如 Shellshock、Heartbleed和沙虫。

Checked C 通过修改它控制指针的方式来解决这些问题,程序员使用指针来定义他们的代码操作的内存地址。

当指针数量较多时,指针控件往往容易出现混乱。项目越大,就越难跟踪它们。Chromium、Firefox、Office、OpenSSL 等大型代码库都有这个问题c语言中内存的申请和释放,你可以在他们的更新日志中看到很多这样的修复。

“Checked C 允许程序员更好地描述他们想要如何使用指针,以及他们应该指向的内存范围”,微软说[2],“这些信息可用于在运行时环境中添加检查以检测错误数据访问,而不是让错误在不知不觉中蔓延。”

图片[1]-微软开源了CheckedC语言的扩展版本,可以解决一系列安全隐患-老王博客

Checked C 为 C 语言添加边界检查

Checked C 还将允许开发人员检测他们认为 C 具有但没有的功能的滥用。用编程术语来说,这个称为“边界检查”的功能检查变量/指针是否在其范围内分配。

C# 和 Rust 已经具备这种能力,而且还不止于此。然而不幸的是,广泛使用的 C 和 C++ 没有这样的功能。微软希望只需对现有 C/C++ 程序进行微小改动即可使用 Checked C 以获得安全性改进,这将吸引大量开发人员开始使用 Checked C。

Checked C 项目已放在 GitHub[3] 上。

这不是微软第一次在基本编程语言上做出自己的贡献。在此之前,该公司的程序员创建了一个名为 Typescriptq 的 j 超集c语言中内存的申请和释放,并获得了广泛的认可。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论