开发四年只会写业务代码,分布式高并发都不会还做程序员?  

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

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

近日 WhiteSource 就七种热门编程语言的安全性做了年岸度报告。该报告汇总了多个来源的开源漏洞信息,如国家漏洞数据库(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 内核等基础架构背后的主要语言之一就是 C 语言。这些存在时间、体积和中心性等因素的组合,可以解释 C 语言为什么存在这么多大量已知开源安全漏洞。

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

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

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

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

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

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

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

有哪一种编程语言比其他的更安全吗?相关推荐

  1. 机器学习编程语言_我应该选择哪种编程语言? 我应该专注于前端吗? 后端? 机器学习?...

    机器学习编程语言 by Preethi Kasireddy 通过Preethi Kasireddy 我应该选择哪种编程语言? 我应该专注于前端吗? 后端? 机器学习? (What programmin ...

  2. 2020年,最适合AI的5种编程语言

    来源 | medium 编译 | 张涛 责编 | Carol 出品 | AI科技大本营(ID:rgznai100) AI系统的开发必须有计算机代码,而计算机程序的开发有不同类型的编程语言可以选择.本文 ...

  3. 漫画:7 种编程语言的学习曲线

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 程序员 Dobiasd 绘制七种编程语言的学习曲线图. 这 ...

  4. 会写代码的AI开源了!C语言写得比Codex还要好,掌握12种编程语言丨CMU

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 萧箫 发自 凹非寺 量子位 | 公众号 QbitAI 比Codex还 ...

  5. 七种编程语言的学习曲线

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 程序员 Dobiasd 绘制七种编程语言的学习曲线图. 这些语言是 ...

  6. 哪种编程语言又快又省电?有人对比了27种语言

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|OpenCV学堂 在手机快没电时,管理软件往往会提醒我们 ...

  7. 心得丨对于机器学习,到底该选择哪种编程语言

    作者: jihong10102006 开发者到底应该学习哪种编程语言才能获得机器学习或数据科学这类工作呢?这是一个非常重要的问题.我们在许多论坛上都有讨论过.现在,我可以提供我自己的答案并解释原因,但 ...

  8. 测试 C、Python、Java 等 16 种编程语言的 Hello World:7 种存在 Bug?

    译者 | 张洁 责编 | 屠敏 出品 | 程序人生 (ID:coder _life) Hello World 可能是最常用的计算机程序.几十年来,许多人在开始使用新的编程语言时,编写的第一个程序通常是 ...

  9. 要获得“机器学习或数据科学”的工作,到底选哪种编程语言更好?

    如果想要获得机器学习或者数据科学这样的工作的话,开发者到底应该学习哪种编程语言呢?这是一个非常重要的问题. 在Indeed.com上使用趋势搜索. 它可以根据时间搜寻实际工作机会中特定的条款. 这表明 ...

最新文章

  1. 整理:warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
  2. 【Android 事件分发】ItemTouchHelper 实现侧滑删除
  3. 【Python-ML】SKlearn库多元线性回归性能评估
  4. c# datagridview表格控件常用操作
  5. 【存储知识学习】第十章- 存储架构演进过程《大话存储》阅读笔记
  6. HDU1878 欧拉回路
  7. 编写TreeSet类的实现程序,其中相关的迭代器使用二叉查找树
  8. web——Tomcat Maven插件及Servlet入门
  9. 解决Struts2的配置文件struts.xml文件无提示问题
  10. tushare数据存入mysql代码_下载股票的历史日交易数据并存入数据库——基于tushare...
  11. 洛谷P1007 独木桥(贪心)
  12. 微信小程序 通过百度API接口实现汉译英翻译
  13. 24核超级计算机,24核装备 Intel发布最强14nm至强处理器
  14. Adroid11,拍照,裁剪以及保存图片
  15. Codeforces Round #439 (Div. 2) E. The Untended Antiquity(二维BIT)
  16. 2048小游戏(网页版)
  17. bootmgr快速修复win7_Win7进入死亡倒计时,全国一半电脑要遭殃?
  18. 安装pyltp模块详细教程(windows下python安装)
  19. Lattice Diamond关于原语的使用
  20. 制造业从中国回流英国 英媒:工业史上的奇妙反转

热门文章

  1. python queue模块_Python的queue模块详解
  2. tab s6 linux on dex,S Pen + DeX模式 三星Galaxy Tab S6让你秒变办公达人
  3. 【杂谈】如何应对烦人的开源库版本依赖-做一个心平气和的程序员?
  4. 【AI初识境】深度学习中常用的损失函数有哪些?
  5. 【研究院】滴滴研究院,都在做什么
  6. 全球及中国壁纸市场盈利预测与投资风险分析报告2022-2027年
  7. Building COM Objects in C#
  8. Ubuntu14下搭建Web服务器
  9. 中粮国际对话国际农民丰收节贸易会 谋定国际农贸现代化
  10. 自定义requestAnimationFrame帧频