0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心
发布

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

热门编程语言中哪个的安全性更高

Wildesbeast 来源:今日头条 作者:C语言编程学习 2020-02-06 12:37 次阅读

编程语言之争,一直以来是开发者社区的热议问题,因为开发者喜欢证明自己所使用的编程语言占据主导地位,尤其是安全性,只不过讨论的过程往往都伴随着双方的愤怒,最后不了了之。那么,你可知在众多热门编程语言中,哪个安全性更高?

为此,开源安全公司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++编程的小伙伴就可以进来交流。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表德赢Vwin官网 网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    19

    文章

    2934

    浏览量

    103781
  • 编程语言
    +关注

    关注

    10

    文章

    1906

    浏览量

    34226
  • PHP
    PHP
    +关注

    关注

    0

    文章

    452

    浏览量

    26553
收藏 人收藏

    评论

    相关推荐

    请问DM平台访问安全性如何控制?

    DM平台访问 安全性如何控制?
    发表于07-25 06:10

    蓝牙模块的安全性与隐私保护

    蓝牙模块作为现代无线通信的重要组成部分,在智能家居、可穿戴设备、健康监测等多个领域得到了广泛应用。然而,随着蓝牙技术的普及,其 安全性和隐私保护问题也日益凸显。本文将探讨蓝牙模块在数
    的头像 发表于06-14 16:06 261次阅读

    介绍C语言中错误处理和异常处理的一些常用的方法和策略

    C 语言是一种低级的、静态的、结构化的 编程 语言,它没有提供像C++或Java等高级 语言中的异常处理机制,例如try-catch-finally等。
    的头像 发表于02-28 14:25 425次阅读

    如何解决C语言中的“访问权限冲突”异常?C语言引发异常原因分析

    如何解决C 语言中的“访问权限冲突”异常?C 语言引发异常原因分析 在C 语言中,访问权限冲突异常通常是由于尝试访问未授权的变量、函数或其他数据结构而引起的。这种异常是 编程中常见的错误之一
    的头像 发表于01-12 16:03 2831次阅读

    c语言中逻辑真等价于什么

    在C 语言中,逻辑真等价于1。逻辑真可以理解为一个表达式、语句或条件的结果为真,即满足条件。在计算机科学和 编程中,逻辑真在控制流语句、循环和条件语句中具有重要的作用。 逻辑真等价于条件为真的情况。在C
    的头像 发表于11-30 14:10 1394次阅读

    c语言中decimal的含义

    特殊的数据类型,用于处理需要 更高精度的十进制数。 在C 语言中,普通的整数类型(如int)只能表示整数,并且有一定的范围限制,而decimal类型可以表示更大范围的数值,并且可以保持高精度。这使得decimal类型在一些需要精确计算的场景中非常有用,比如在金融领域的计算中。
    的头像 发表于11-30 10:57 1671次阅读

    \0在c语言中怎么用

    是由贝尔实验室的Dennis Ritchie为了开发UNIX操作系统而设计的。它在20世纪70年代初首次出现,并迅速流行起来。C 语言以其简洁、高效、低级别的特性成为了广泛使用的 编程 语言。 二、基本语法 注释 在C
    的头像 发表于11-24 09:59 2396次阅读

    Python编程语言属于什么语言

    Python 编程 语言属于高级 编程 语言中的一种。它是一种通用、面向对象、解释型 编程 语言。Pytho
    的头像 发表于11-22 14:31 1030次阅读

    c语言中顺序结构的基本流程

    C 语言是一种通用的 编程 语言,注重结构化 编程和顺序结构。顺序结构是C 语言 编程中最简单也是最基本的控
    的头像 发表于11-22 10:20 721次阅读

    C语言中如何实现注释

    在C 语言中,注释是用来增加代码可读 和注释过程和功能的文本。C 语言中支持两种类型的注释:单行注释和多行注释。 单行注释以双斜杠(//)开始,直到该行结束。该注释语句可以在代码的任何位置插入,用于解释
    的头像 发表于11-22 10:17 911次阅读

    求助,为什么说电气隔离安全性比较高?

    为什么说电气隔离 安全性比较高?
    发表于11-02 08:22

    编程语言中一个奇怪的代码结构

    在C 语言和C++等 编程 语言中,我们常常会遇到一个奇怪的代码结构。
    发表于11-01 10:24 292次阅读
    <b class='flag-5'>编程</b><b class='flag-5'>语言中</b>一个奇怪的代码结构

    Rust语言中的 RwLock内部实现原理

    Rust是一种系统级 编程 语言,它带有严格的内存管理、并发和 安全性规则,因此很受广大程序员的青睐。RwLock(读写锁)是 Rust 中常用的线程同步机制之一,本文将详细介绍 Rust 语言中
    的头像 发表于09-20 11:23 650次阅读

    基于Rust语言中的生命周期

    Rust是一门系统级 编程 语言具备高效、安和并发等特,而生命周期是这门 语言中比较重要的概念之一。在这篇教程中,我们会了解什么是命周期、为什么需要生命周期、如何使用生命周期,同时我们依然会使用老朋友
    的头像 发表于09-19 17:03 765次阅读

    Rust语言中错误处理的机制

    可能的错误,实际运行中仍然可能出现各种各样的错误,比如文件不存在、网络连接失败等等。对于这些不可预测的错误,我们必须使用错误处理机制来进行处理。在本教程中,我们将介绍Rust 语言中错误处理的机制,以及如何编写 安全、可靠的错
    的头像 发表于09-19 14:54 1095次阅读