技术开发 频道

C、PHP、JAVA...哪种编程语言最不安全?

  在IT开发圈子里,常常会有哪种编程语言最好/哪种最差的一些争论。在这种争论中,安全性往往是决定大家支持一种语言、不信任另一种语言的一个因素。那么,到底哪种语言最安全,哪种最不安全呢?

Photo by Tim Gouw from Pexels

  近日,国外一家开源软件服务公司WhiteSource发布了一份关于开源软件安全性的报告。报告中的数据及信息来源于WhiteSource的综合数据库,该数据库收集的开源漏洞信息来自于美国国家漏洞数据库(NVD)、安全警告、GitHub问题跟踪器以及目前比较流行的开源项目的问题跟踪器等等。

  该数据库中涵盖了200多种语言,研究员在分析过程中,重点关注了过去十年内使用最广泛的7种语言中的开安全漏洞,以找出哪种编程语言最安全,每种语言中,哪种漏洞类型(CWE)最常见,以及原因。

  报告给出了四大结论:

  ·C中的漏洞,占报告的所有开源安全漏洞的50%。这种情况可以解释:C的历史最悠久,拥有最高的编写代码量,而且是我们使用的所有基础架构的基础。

  ·大多数编程语言中最常见的CWE是跨站点脚本(XSS);输入验证;权限、特权和访问控制;以及信息泄露/披露。

  ·自动化工具的使用和有奖捉虫计划(Bug Bounty Program)的趋势已经改变了现状,导致2017年报告的漏洞显著增加。

  ·虽然在过去两年中,我们看到报告的安全漏洞数量激增,但在大多数语言中,高严重性漏洞的数量已经减少。

  根据报告中显示,这七种每种语言报告的开源安全漏洞占比分别约为:

  1、C (46.9%)

  2、PHP (16.7%)

  3、Java (11.4%)

  4、JavaScript (10.2%)

  5、Python (5.45%)

  6、c++ (5.23%)

  7、Ruby (4.25%)

  研究人员在报告中特别指出,我们应该考虑两个因素来评估这些项目。尽管从研究结果来看,有些人可能错误地认为C语言天生就更不安全,但事实并非如此。

  对于初学者来说,编写的C语言代码比任何其他语言都多,产生的漏洞提也更多。事实上,C语言的使用时间比大多数其他语言都要长得多,并且是我们使用的大多数产品和平台的核心。因此,它肯定比其他语言有更多已知的漏洞。

  报告中还表示,在过去10年里,每种编程语言中发现的开源漏洞数量显著增加,2017年更是大幅增加。这在一定程度上是由于开源的流行,以及对开源组件中的安全漏洞的意识增强,这促使了开发人员去发现并报告更多的问题。

  那么对于编程语言的安全问题,您怎么看呢?

0
相关文章