<output id="ilehw"><bdo id="ilehw"><nobr id="ilehw"></nobr></bdo></output>
        <dl id="ilehw"><font id="ilehw"></font></dl>
          1. 有哪一种编程语言比其他的更安全吗?

            段段段落
             段段段落
            发布于 2019年03月26日
            收藏 15

            近日开源安全公司 WhiteSource 针对编程语言的安全性做了一份报告,这份报告提出了一个新问题 —— “有哪一种编程语言比其他的更安全吗?”

            编程语言之争,是开发者社区一直以来的热议问题,不过讨论的过程往往伴随着双方的愤怒及?#25176;?#30340;破损,不了了之。许多开发者?#19981;?#35777;明他们使用的编程语言占主导地位,这个过程中经常提到的就有安全性。

            近日 WhiteSource ?#25512;?#31181;热门编程语言的安全性做了年岸度报告。该报告汇总了多个来源的开源漏洞信息,如国家漏洞数据库(NVD)、安全公告、GitHub 问题追踪器(Issue Tracker)和流行开源项目问题追踪器。

            WhiteSource 根据开源社区过去几年使用的一些流行语言,确认了七种比较热门的编程语言:C,Java,JavaScript,Python,Ruby,PHP 和 C ++。在这些编程语言的基础上,WhiteSource 搜索了数据库,查看了过去十年中每种语言中已知开源安全漏洞的数量、随时间推移这些安全漏洞发生的变化、以及各语言最常见的 CWE(Common Weakness Enumeration,通用缺陷列表)。

            报告显示了过去10年中不同语言的开源漏洞总数,很明显居于首位的编程语言是 C 语言,占到了近一半的比例。

            不过这不能说明 C 语言的安全性远低于其他热门语言。如此高的占比有几个因素可以解释:一是 C 语言的使用时间在调查语言中是最长的,二是 C 语言一般编写的代码量很大,三是 Open SSL 和 Linux 内?#35828;?#22522;础架构背后的主要语言之一就是 C 语言。这些存在时间、体积和?#34892;?#24615;等因素的组合,可以解释 C 语言为什?#21019;?#22312;这么多大量已知开源安全漏洞。

            报告也显示了随着时间推移不同编程语言的开源安全漏洞数量变化。过去的十年中,它们各有自己的高点和低点。但是所有语言都由一个突出的趋势,就是近两年所有语言的已知安全漏洞数量都大幅增加。这可以看作是安全漏洞意识的提高及开源的更加普及。随着开源安全研?#23458;度?#36164;源的增加,人们发现的安全问题数量?#19981;?#21464;多。

            这些漏洞的?#29616;?#31243;?#28909;綰文兀?#35843;查人员研究高?#29616;?#24615;的开源安全漏洞(CVSS v2 得分高于7)时,发现除了 JavaScript 和 PHP,报告中涉及的大多数语言?#29616;?#28431;洞的占比处于下?#30331;?#21183;。

            这可能是安全研究人员使用自动化工具的结果。虽然借助这些工具,过去几年大多数语言的中等漏洞数量一直在增加,但这些工具通常不能发现复杂和?#29616;?#30340;安全问题。

            调查人员还研究了每种语言常见的 CWE。这其中,跨站脚本攻击(XSS,也被称为 CWE-79)和输入验证(也被称为 CWE-20)占据了最常见的位置。另外较为突出的 CWE 有信息泄漏(CWE-200)路径遍历(CWE-22)权限及访问控制(CWE-264)不正当访问控制(CWE-284)等。

            “我的编程语言比你更安全”,类似的话题可以是一种有趣的消磨时间方式。关于哪种编程语言最安全的讨论往往?#19981;?#20986;现一些有趣的观点,而?#19994;?#26368;终答案反而可能无法帮助你创造兼具创新性和安全性的软件。

            如今,大多数软件开发?#23478;?#36182;多种编程语言来实现,而不是执着于某一编程语言。掌握已知的开源漏洞、了解团队正在使用的编程语言中的优点和缺点,这些都是确保软件项目从一开始就具有安全性的好方法。

            最安全的编程语言没有最终赢家。WhiteSource 从研究中得出的最后一个结论是,编程语言的安全性无关于语言本身,而是取决于使用者的使用方式。开发团队使用了适当的管理方法,减轻整个 SDLC (?#20302;?#29983;存周期)的漏洞,这才是保证项目安全的好选择。

            本站文章除注明转载外,均为本站原创或编译。欢迎任何?#38382;?#30340;转载,但请务必注明出处,尊重他人劳动共创开源社区。
            转载请注明:文章转载自 OSCHINA 社区 [http://www.bswx.tw]
            本文标题:有哪一种编程语言比其他的更安全吗?
            加载中

            精彩评论

            久永
            久永
            ?#27604;?#26377;!
            ——根本跑不起来的语言。
            贾一饼
            那不是rust吗
            zqq90
            zqq90
            私以为,这跟门槛有关,门槛低的容易吸收更多新手,相反,「逼格」高的语言往往是一些经验较为丰富的老手
            冰力
            冰力

            引用来自“贾一饼”的评论

            那不是rust吗
            @贾一饼 这个安全不只是内存方面的
            Alex-wxlang
            Alex-wxlang
            净干没有多大意义的事,用这些来卖自己的语言!直接用万能语言 C++或者dlang就行了!如果不想操作复杂度,就用dlang,又简洁又安全!各种玩法!

            最新评论(28

            周扬aacc是
            周扬aacc是
            ruby能有c#流行?看来这是个娱乐性排行
            zqq90
            zqq90
            私以为,这跟门槛有关,门槛低的容易吸收更多新手,相反,「逼格」高的语言往往是一些经验较为丰富的老手
            冰力
            冰力

            引用来自“贾一饼”的评论

            那不是rust吗

            引用来自“冰力”的评论

            @贾一饼 这个安全不只是内存方面的

            引用来自“helloclia”的评论

            对编程语言来说,安全性就是指的内存安全。
            @helloclia 请认真看原文,说的是安全漏洞。
            李达康
            李达康
            Asm
            helloclia
            helloclia

            引用来自“贾一饼”的评论

            那不是rust吗

            引用来自“冰力”的评论

            @贾一饼 这个安全不只是内存方面的
            对编程语言来说,安全性就是指的内存安全。
            谁来与我大战三百回合
            什么语言到我手里。我都能写个格式化?#25490;?#30340;。
            Alex-wxlang
            Alex-wxlang

            引用来自“Alex-wxlang”的评论

            净干没有多大意义的事,用这些来卖自己的语言!直接用万能语言 C++或者dlang就行了!如果不想操作复杂度,就用dlang,又简洁又安全!各种玩法!

            引用来自“Jason909”的评论

            dlang值得更火
            你太有眼光了!
            张亦俊
            张亦俊
            安全性能和编程语言有啥关系咧,各种安全组件C参与的最多,所以问题也最多,很合理
            robortly
            robortly
            没有C# sharp,不科学!
            e
            eisonfine1
            可以的
            返回顶部
            顶部
            广东快乐十分实时开奖

                  <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>