博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
有哪一种编程语言比其他的更安全吗?
阅读量:5745 次
发布时间:2019-06-18

本文共 1408 字,大约阅读时间需要 4 分钟。

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

a1450d764fc33fe119c83a4b97cd4c143f9.jpg

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

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

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

c51a12dfa4173861943dc1dd0b1d2ff5d52.jpg

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

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

c33d9d0d591f82a58b150c4323dd123a487.jpg

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

72b462f17475c10da8219ce0c7231f93bb3.jpg

这些漏洞的严重程度如何呢?调查人员研究高严重性的开源安全漏洞(CVSS v2 得分高于7)时,发现除了 JavaScript 和 PHP,报告中涉及的大多数语言严重漏洞的占比处于下降趋势。

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

调查人员还研究了每种语言常见的 CWE。这其中,跨站脚本攻击(,也被称为 )和(也被称为 )占据了最常见的位置。另外较为突出的 CWE 有,,、等。

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

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

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

转载地址:http://clazx.baihongyu.com/

你可能感兴趣的文章
二叉树前序中序后序遍历的非递归方法
查看>>
[Unity3d]Shader 着色器 学习前了解知识
查看>>
维辰超市:借助云商城成功转型新零售
查看>>
web.xml中<load-on-start>n</load-on-satrt>作用
查看>>
【算法】CRF
查看>>
Windows UI风格的设计(7)
查看>>
SQL中使用WITH AS提高性能 使用公用表表达式(CTE)简化嵌套SQL
查看>>
oracle 强行杀掉一个用户连接
查看>>
Git提交本地库代码到远程服务器的操作
查看>>
让你快速上手的Glide4.x教程
查看>>
浮动和清除(闭合)浮动
查看>>
LR录制脚本时IE打不开的原因
查看>>
Sublime Text 2.0.2,Build 2221注册码
查看>>
最长递增子序列 动态规划
查看>>
原生CSS设置网站主题色—CSS变量赋值
查看>>
webpack 4.0 中 clean-webpack-plugin 的使用
查看>>
POJ 2236 Wireless Network (并查集)
查看>>
python分类
查看>>
GitBlit (1)-- 在linux 安装 GitBlit 并运行
查看>>
程序是如何执行的(一)a=a+1
查看>>