微软开源了一个更安全的 C 语言版本:Checked C
创始人
2024-03-01 17:18:00
0

微软开源了 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 的超集,它已经得到了广泛认可。

相关内容

Linux: crash:...
文章目录 介绍错误说明从网上搜到类似的问题。手写代码做CPU的PM...
2025-06-01 19:43:32
不支持的操作异常 - On...
当你在处理复选框的选中状态改变事件(OnCheckedChange...
2025-01-11 19:31:20
BMIButtonchec...
'BMI Button checked for gender”翻译...
2024-12-23 05:01:56
Blazor:移除单选输入...
在Blazor中,可以通过绑定属性来控制单选输入的checked属...
2024-12-22 12:30:29
Blazor中如何在初始化...
在Blazor中,我们可以使用@bind指令绑定CheckBox的...
2024-12-22 08:00:52
编译错误 CS0029:无...
这个编译错误的原因是尝试将一个类型为ComboBox.Object...
2024-12-07 21:01:40

热门资讯

2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
KDE4.11 Beta1 正...   KDE 项目工作组刚刚发布了 KDE Software Compilation 4.11 Bet...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
使用时间序列数据,用开源工具助... InfluxData 是一个开源的时间序列数据库平台。下面介绍了它是如何被用于边缘应用案例的。收集到...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
Textual:为 Pytho... 快速入门使用 TextualPython 在 Linux 上有像 TkInter 这样的优秀 GUI...
硬核观察 #1245 Open... #1 OpenAI 悄然删除禁止将 ChatGPT 用于 “军事和战争” 的禁令在 1 月 10 日...