查看: 202|回复: 2

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

[复制链接]

152

主题

0

好友

2609

积分

进士

Rank: 5Rank: 5

  • TA的每日心情
    开心
    2013-12-17 13:39
  • 签到天数: 48 天

    [LV.5]常住居民I

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

    Checked C 通过修改如何控制指针来解决这些问题,指针被程序员们用来定义他们的代码所操作的内存地址。当指针数量一多,指针控制就往往容易忙中出乱。

    9190008dd7cfbe92d06.jpg


    项目越大,跟踪它们就越困难。类似 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 的超集,它已经得到了广泛认可。







    回复

    使用道具 举报

    0

    主题

    1

    好友

    476

    积分

    秀才

    Rank: 3Rank: 3

  • TA的每日心情
    开心
    昨天 21:13
  • 签到天数: 106 天

    [LV.6]常住居民II

    发表于 2016-6-20 22:49:11 |显示全部楼层
    语言越来越多,万变不离其中
    回复

    使用道具 举报

    12

    主题

    0

    好友

    575

    积分

    版主

    Rank: 7Rank: 7Rank: 7

  • TA的每日心情
    开心
    2015-7-14 10:15
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2016-6-21 10:31:53 |显示全部楼层
    看好这个,c确实太野了。
    eeboard大力支持的开源RTOS -- Trochili RTOS
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /6 下一条


    手机版|爱板网 |网站地图  

    GMT+8, 2016-12-6 02:36 , Processed in 0.086842 second(s), 11 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部