微软开源了一个更安全的 C 语言版本:Checked C
| 2016-06-18 18:15 评论: 7 收藏: 1
微软开源了 Checked C ,这是一个 C 语言的扩展版本,可以用于解决 C 语言中的一系列安全相关的隐患。正如其名字所示,Checked C 为 C 语言增加了检查。这个检查可以帮助开发者检查常见的编程错误,比如缓存区侵占、内存访问越界、不正确的类型转换等。这些编程错误往往是造成许多重大安全漏洞的根本原因,比如破壳漏洞、心脏出血漏洞、沙虫等。
Checked C 通过修改如何控制指针来解决这些问题,指针被程序员们用来定义他们的代码所操作的内存地址。
当指针数量一多,指针控制就往往容易忙中出乱。项目越大,跟踪它们就越困难。类似 Chromium、Firefox、Office、OpenSSL 以及其它的大型代码库在这方面都存在这样的问题,你可以从它们的变更日志中看到大量的这类问题修复。
“Checked C 允许程序员更好的描述他们想要如何使用指针,以及指针应该指向的内存范围”,微软说,“这个信息可以用于在运行时环境中添加检测,以侦测错误的数据访问,而不是让错误悄悄的发生而无所察觉。”
Checked C 给 C 语言添加了边界检查
Checked C 也将允许开发者检测到他们以为 C 语言有、而实际却没有的功能误用。按编程的说法来说,这个叫做“边界检查”的功能,用于检查变量/指针是否在它的范围之内赋值。
C# 和 Rust 已经有这样的功能了,而且还不止于此。然而,不幸的是,被广泛使用的 C 和 C++ 却没有这样的功能。微软希望只需要对现有的 C/C++ 程序做最小的改动,利用 Checked C 就可以得到安全方面的改善,这样会吸引大量的开发者开始使用 Checked C。
Checked C 项目已经放到了 GitHub 上。
这并不是微软第一次对基本编程语言做出来自己的演绎,之前,该公司的程序员们还创建了一个名为 TypeScript 的 JavaScript 的超集,它已经得到了广泛认可。
- [1]hazdzz [Chrome 51.0|Windows 10] 发表于 2016-06-22 11:05 的评论:微软的产品除了Microsoft Office 和 Azure,其它都是坑。[2]youyoulemon [Chrome 51.0|Windows 10] 发表于 2016-06-23 16:30 的评论:那你还用着win10?难道Visual Studio是坑?[3]hazdzz [Firefox 45.0|Mac 10.9] 发表于 2016-06-23 22:15 的评论:我跨三大平台。至于VS,大坑一个。[4]youyoulemon [Chrome 51.0|Windows 10] 发表于 2016-06-25 10:56 的评论:我选择手动滑稽
- 来自山东潍坊的 Firefox 47.0|Windows 7 用户 2016-07-12 19:33 6 赞 回复
- [手动滑稽]
- fxbszj [Firefox 47.0|Windows 7] 2016-06-21 09:33 5 赞 回复
- 难道就是那些必须用_s 函数的……
- POCMON [QQ Browser 9.4|Windows 10] 2016-06-19 20:36 8 赞 回复
- 不错,其实MS除了价格外,都还做的不错!说到价格,只是能不能接受的问题~