❏ 站外平台:

微软开源了一个更安全的 C 语言版本:Checked C

作者: Catalin Cimpanu 译者: LCTT Xingyu.Wang

| 2016-06-18 18:15   评论: 7 收藏: 1    

微软开源了 Checked C ,这是一个 C 语言的扩展版本,可以用于解决 C 语言中的一系列安全相关的隐患。正如其名字所示,Checked C 为 C 语言增加了检查。这个检查可以帮助开发者检查常见的编程错误,比如缓存区侵占buffer overruns、内存访问越界、不正确的类型转换等。这些编程错误往往是造成许多重大安全漏洞的根本原因,比如破壳漏洞Shellshock心脏出血漏洞Heartbleed沙虫Sandworm等。

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

当指针数量一多,指针控制就往往容易忙中出乱。项目越大,跟踪它们就越困难。类似 Chromium、Firefox、Office、OpenSSL 以及其它的大型代码库在这方面都存在这样的问题,你可以从它们的变更日志中看到大量的这类问题修复。

“Checked C 允许程序员更好的描述他们想要如何使用指针,以及指针应该指向的内存范围”,微软,“这个信息可以用于在运行时环境中添加检测,以侦测错误的数据访问,而不是让错误悄悄的发生而无所察觉。”

Checked C 给 C 语言添加了边界检查

Checked C 也将允许开发者检测到他们以为 C 语言有、而实际却没有的功能误用。按编程的说法来说,这个叫做“边界检查bounds checking”的功能,用于检查变量/指针是否在它的范围之内赋值。

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除了价格外,都还做的不错!说到价格,只是能不能接受的问题~
LCTT 译者
Xingyu.Wang 💎💎💎
共计翻译: 995.0 篇 | 共计贡献: 3546
贡献时间:2014-07-25 -> 2024-04-09
访问我的 LCTT 主页 | 在 GitHub 上关注我


返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。