编程语言之争,一直以来是开发者社区的热议问题,因为开发者喜欢证明自己所使用的编程语言占据主导地位,尤其是安全性,只不过讨论的过程往往都伴随着双方的愤怒,最后不了了之。那么,你可知在众多热门编程语言中,哪个安全性更高?
为此,开源安全公司 WhiteSource 针对七种热门编程语言的安全性做了一份报告,汇总了多个来源的开源漏洞信息,其中包括国家漏洞数据库(NVD)、安全公告、GitHub问题追踪器(Issue Tracker)和流行开源项目问题追踪器。
WhiteSource 根据开源社区过去几年间使用的流行语言,确认出C,Java,JavaScript,Python,Ruby,PHP 和 C ++这七种比较热门的编程语言,并在这些语言的基础上,搜索数据库查看了过去十年中每种语言中已知开源安全漏洞的数量、随时间推移这些安全漏洞发生的变化、以及各语言最常见的 CWE(通用缺陷列表)。
正如上图所示,很明显居首位的是C语言,占到了近一半的比例。不过,这并不能说明C语言的安全性远低于其他热门语言,如此高的占比主要有以下几个原因可以解释:一是,C语言的使用时间在调查语言中是最长的;二是,C语言一般编写的代码量很大;三是,Open SSL和Linux内核等基础架构背后的主要语言之一就是C语言。这些存在时间、体积和中心性等因素的组合,可以解释C语言为什么存在这么多大量已知开源安全漏洞。
此外,报告还显示了随时间的推移不同编程语言的开源安全漏洞数量变化。过去十年间,这些编程语言有着各自的高点和低点。但所有语言都有一个明显的趋势,即近两年所有语言的已知安全漏洞数量都在大幅增加,这可以看作是安全漏洞意识的提高及开源的更加普及。随着开源安全研究投入资源的增加,人们发现的安全问题数量也会变多。
那么,这些漏洞究竟严重到何种程度呢?调查人员研究发现高严重性的开源安全漏洞(CVSS v2得分高于7)时,发现除了JavaScript和PHP,报告中涉及的大多数语言严重漏洞的占比处于下降趋势。此外,调查人员还研究了每种语言常见的CWE。
其中,跨站脚本攻击(XSS,也称之为CWE-79)和输入验证(也称为CWE-20)占据了最常见的位置;另外比较突出的CWE有信息泄漏(CWE-200)、路径遍历(CWE-22)、权限及访问控制(CWE-264)、不正当访问控制(CWE-284)等。
其实,像“我的编程语言比你更安全”类似的话,现在看来更像是程序员间的打趣。如今,大多数软件开发都依赖多种编程语言来实现,而不是执着于某一编程语言。掌握已知的开源漏洞、了解团队正在使用的编程语言中的优点和缺点,这些都是确保软件项目从一开始就具有安全性的好方法。
想要在程序员生涯内有更高的成就的话,C/C++就是一个既可以强化思维能力,又可以打好编程基础的编程语言,你想要做软件开发,成为核心程序员的话,学习C/C++的话笔者有一个C/C++的编程俩千人羣(Q艘索:C/C++编程学习13)群,你如果感觉自学C/C++语言有困难的话,有兴趣学习或者了解一下C/C++编程的小伙伴就可以进来交流。
-
JAVA
+关注
关注
19文章
2956浏览量
104534 -
编程语言
+关注
关注
10文章
1937浏览量
34587 -
PHP
+关注
关注
0文章
452浏览量
26645
发布评论请先 登录
相关推荐
评论