<output id="ilehw"><bdo id="ilehw"><nobr id="ilehw"></nobr></bdo></output>
        <dl id="ilehw"><font id="ilehw"></font></dl>
          1. 微软正探索将 Rust 作为 C 和 C++ 的安全替代方案

            xplanet
             xplanet
            发布于 2019年07月19日
            收藏 44

            微软正在探索使用 Rust 编程语言作为 C、C++ 和其他语言的替代方案,以此来改善应用程序的安全状况。

            自 2004 年以来,微软安全响应中心(MSRC)已对所有报告过的微软安全漏洞进行了分类。根据他们提供的数据,所有微软年度补丁中约有 70% 是针对内存安全漏洞的修复程序。

            ▲微软每年约有 70% 的漏洞仍然是内存安全问题

            这样高的百分比是因为 Windows 和大多数其他微软产?#20998;?#35201;使用 C 和 C++ 编写,这两种“内存不安全”(memory-unsafe)的编程语言允许开发人员对内存地?#26041;?#34892;细粒度控制,并且可以执行代码。管理内存执行的开发人员代码中的一个漏洞可能导致一系?#24515;?#23384;安全错误,攻击者可以利用这些错误带来危险和侵入性后果,例如远程代码执行或权限提升漏洞。

            于是,探索使用诸如 Rust 之类的内存安全(memory-safe)语言被提上日程,这或将成为创建更安全的微软应用程序的替代方法。

            Rust 最初是 Mozilla 的一个研究项目,用于更安全、更快速地重写 Firefox 浏览器。最近,Brave 浏览器还用 Rust 版本替换了原先用 C++ 编写的广告拦截组件。2019 年的 StackOverflow 开发者调查?#20801;荊琑ust 已连续四年蝉联“最受开发者喜爱的编程语言”。开发人员喜欢它,因为它的语法更简单,并且使用 Rust 编写的应用程序 bug 更少,因此开发人员可以专注于扩展他们的应用程序,而不是进行?#20013;?#30340;维护工作。

            MSRC 首席安全工程经理 Gavin Thomas 建议第三方开发人员也应该研究内存安全语言,他列举了一些原因,例如开发人员花时间和精力学习如何调试 C++ 应用程序中出现的与内存相关的安全漏洞。但这显然是不合适的,“开发人员的核心工作不是担心安全性,而是要做功能开发”,Thomas 提出疑问,“为什么不在一开始就将内存安全问题引入开发语言呢?”

            为此,他呼吁:“如果这个行业真正关心安全,应该专注于开发人员的工具,而不应当被所有安全设备和过时的方法弄傻眼。我们首先得努力防止开发人员陷入缺陷,而不是提供解决缺陷的指导和工具。”

            MSRC 官方博客原文:https://msrc-blog.microsoft.com/2019/07/16/a-proactive-approach-to-more-secure-code/

            本站文章除注明转载外,均为本站原创或编译。欢迎任何?#38382;?#30340;转载,但请务必注明出处,尊重他人劳动共创开源社区。
            转载请注明:文章转载自 OSCHINA 社区 [http://www.bswx.tw]
            本文标题:微软正探索将 Rust 作为 C 和 C++ 的安全替代方案
            加载中

            精彩评论

            薛小猫
            薛小猫
            ?#24403;?#23436;Linux,?#24403;?#35895;歌,然后?#24403;ozilla。啊,世界一家亲了。没有敌人。
            __JM_Joy__
            __JM_Joy__
            恭喜微软喜提Rust!
            开源中国首席装逼王
            我们首先得努力防止开发人员陷入缺陷,而不是提供解决缺陷的指导和工具。

            说的超好
            s
            shifeng1983
            开发人员喜欢它,因为它的语法更简单,呵呵
            cabbage89
            cabbage89
            rust是新一代系统编程语言,未来王者

            最新评论(106

            ruki
            ruki
            ?#19968;?#26159;继续用c吧。
            eechen
            eechen
            Go作为编译型语言,已经要跟PHP抢市场了,这货已经承认它既取代不了C/C++,也不如Rust底层,刚不过Java,只能跟动态语言抢抢Web开发市场找存在感了么?
            来自山卡拉的你
            来自山卡拉的你
            评论都说好,但是我自己目前实在找不到使用的理由,毕竟已经会C++和go了,简单看了一下语法,怎么觉得比C++还复杂??
            乳沟
            乳沟
            恭喜微软找到了个新儿子,这下可以放心的用go了
            xiuno
            xiuno
            说下最近接触 Rust 的心得:
            缺点:Rust 语法不符合最小组合哲学,不要说学 C++ 啥都提供自己挑着用,这可是从头设计语言,没有任何历史包袱。
            一个简单的循环就有三个关键字, for loop while, 并?#24050;?#29615;必须通过迭代器的方式,如下:
            ```
            for x in 0..10 {
            println!("{}", x); // x: i32
            }
            ```
            如果这里我需要 x += 2 的步长进行循环,那么还得去翻手册,语法真的好蛋疼。还有其他不一一列出。

            而它的核心竞争力(编译期间解决内存安全和管理的机制)并没有达?#25509;?#38597;便捷的地步,?#20801;?#30340;引入了 ownership borrow move lifetime 等关键词和语法,在复杂的资源竞争情况下,反而变的更加复杂。

            在砍掉协程后,高并发网络编程模型回归到了多线程+异步回调,跟 golang 的?#25317;?#23618;类库到?#21916;?#24212;用高度统一的协程化并发模型比起来不敢说是倒退,只能?#24471;?#26377;明显进步。在对比各自流行的 web 框架测试的时候 golang 的协程模型在高并发的时候更加稳定。

            优点:
            在融合 C/C++ 老代码方面比 golang 要好一些,?#38405;?#39640;。
            天生支?#22336;?#22411;。
            包管理比较灵活,但是也是略微复杂。

            给人感觉还停留在实验室水平,要达到替代 C/C++ 还有很长的路要走,而 golang 在应用层活的越来越好。
            xiuno
            xiuno
            异常和错误机制我觉得也不够优雅,在嘲笑 golang if err != nil 的时候,自己搞了一堆高科技的 .unwrap()。
            wei2011
            wei2011
            说的缺点大都是个人习惯问题。为了内存安全引入的那些东西,的确牺牲了一些灵活性,但?#27492;?#30340;逻辑玩也没问题
            肠殇泉
            肠殇泉
            微软?#20309;?#20204;要用Rust增加内存安全
            吃?#26174;常?#37325;写win10?
            微软:。。。。
            微软?#20309;?#20204;要用Rust增加内存安全
            吃?#26174;常?#37325;写sql server?
            微软:。。。。
            微软?#20309;?#20204;要用Rust增加内存安全
            吃?#26174;常耗且?#26041;面?
            微软:只是提议
            杨哥哥
            杨哥哥
            rust 写的操作系统 https://www.redox-os.org/
            klyou
            klyou
            微软不招C#,也不招F#,不招rust,只招C,C++来开发其他语言和工具
            李英辉
            李英辉
            微软最近20年在技术方向上,习惯性选择错误,rust前景堪忧!
            shadow771
            shadow771
            rust已经在区块链行业起飞了
            李英辉
            李英辉
            区块链是应用,不是技术方向
            x
            xytest01
            为什?#27492;祌ust前景堪忧?除了学习曲线陡?#20572;?#22909;像没什么缺点啊
            16yebo
            16yebo
            哪些技术方向错了?例如...
            李英辉
            李英辉
            .net =>.net core,linq,wpf,曾经的vbscript、f#,微软像熊瞎子掰苞米一样,从闭源到开源,从抄袭到投怀送抱;牺牲的,是整个.net生态体系。
            ITAndy
            ITAndy
            Vala 可以脱离GObject,Vala 值得试一试
            返回顶部
            顶部
            广东快乐十分实时开奖

                  <output id="ilehw"><bdo id="ilehw"><nobr id="ilehw"></nobr></bdo></output>
                  <dl id="ilehw"><font id="ilehw"></font></dl>

                            <output id="ilehw"><bdo id="ilehw"><nobr id="ilehw"></nobr></bdo></output>
                            <dl id="ilehw"><font id="ilehw"></font></dl>
                              1. 360网上可以买彩票么 赛马会六肖必中 福建31选7的开奖结果 内蒙时时彩基本走势图 56期出什么平码 幸运飞艇投注官网 足彩胜负彩可以网上买 陕西11选5开 贵州快3开奖微博 双色球最准确公式推算 让分胜负什么意思 潮京图库六合图库 菠菜在线娱乐城21点 幸运飞app下载 北京快三官网