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

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

3天内不再提示

用哪种编程语言写的应用漏洞最严重 Java还是Python

数据分析与开发 来源:数据分析与开发 作者:机器之心 2021-01-06 16:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

静态代码分析安全公司 Veracode 近日发布了一份应用程序分析报告,结果发现比起 JavaScript 和 Python 等语言,C++ 和 PHP 的安全漏洞要严重得多。

如果你是一位靠 .NET、C++、Java、JavaScript、PHP 或 Python 吃饭的开发者,那要注意了:一项新研究揭示了这些编程语言的主要安全漏洞。 静态代码分析安全公司 Veracode 近期发布了这些语言的漏洞类型数据,这是该公司扫描了 13 万应用程序的安全问题后得到的报告。 该公司调查了用 .NET、C++、Java、JavaScript、PHP 或 Python 编写的应用程序的漏洞趋势。这些数据整合在 Veracode 的《软件安全状态第 11 卷(State of Software Security Volume 11)》报告中: https://www.veracode.com/sites/default/files/pdf/resources/ipapers/security-flaw-heatmap/index.html。

0028e06c-4fcb-11eb-8b86-12bb97331649.png

005a9c4c-4fcb-11eb-8b86-12bb97331649.png

Veracode 扫描 13 万个应用程序后得到的漏洞类型数据。 对于最常用的前端开发语言 JavaScript,Veracode 发现 31.5% 的应用至少有一个跨站脚本(XSS)漏洞,而用 PHP 写的应用中有 74.6% 至少有一个 XSS 漏洞。此外,71% 的 PHP 应用存在加密问题。 对于用 .NET 写的应用,最主要的问题是信息泄露——62.8% 的 .NET 应用存在该问题。C++ 应用最大的问题是错误处理,占到了 66.5%。

至于 Java 应用,首要问题是 CRLF 注入(回车或换行注入),占受调查应用的 64.4%。Python 应用中最严重的安全问题与加密相关,出现在 35% 的受调查应用中。 每种语言的漏洞严重性也存在很大差别。Veracode 发现用 C++ 写的应用中有 59% 存在非常严重的漏洞;而对于 PHP,这一数字为 52%。但是,用 JavaScript 写的应用仅有 9.6% 有非常严重的漏洞,Java 应用的数据为 24%。 Veracode 首席研究官 Chris Eng 解释了不同语言漏洞趋势不同的原因,以及如何修复它们以避免严重损失。

「从整体数据上看,我们这个行业过去十年来没能消除任何一种漏洞类别。」Eng 说,「没有任何问题完全消失。很多事情都在波动,但看看平均情况,你会发现相比于其它指标,这些数据更能反映语言选择和语言流行程度的变化。我们看到 C++ 常见的缓存溢出问题有下降的趋势,但这并不是因为开发者处理这些问题的能力更强了,而是因为使用 C++ 进行开发的人变少了。」

另一方面,影响 JavaScript 和 Python 的问题则有所增长,原因是这两种语言现在非常流行。在企业层面上,Java 和 .NET 依然备受欢迎。 PHP 依然是网页应用开发最常用的脚本语言之一,但 Eng 指出 PHP 漏洞数量更高的原因是该语言提供了大量不安全的原语以及大量错误开发的方式。

「有些语言会尽力避免开发者考虑不周而把事情搞砸,.NET 就是其中最早的语言之一。」Eng 解释说,「相比于使用 PHP,使用 .NET 时,你会发现大量 API 都有更安全的默认设置,使得出现跨站脚本错误或 SQL 注入错误会困难得多。在 PHP 中,这些错误几乎是默认的——除非你刚好在使用一种能为你提供更多保护的更现代框架。使用 PHP 出错的情况实在太多了。」

Veracode 在其分析的 JavaScript 应用中发现的漏洞远远更少,但即使 JavaScript 有更安全的默认设置,庞大的 npm 生态系统中的 JavaScript 和 node.js 开源软件库是潜在的薄弱环节。 「即使你能修复自己写的代码中的所有漏洞,你使用的第三方软件库仍会带来诸多变数。」Eng 说,「打补丁实际上并不如你期望的那么好。现在的趋势是开发者在需要时才会去下载这些软件库的最新版本,然后他们就再也不更新了,除非这个软件库又增加了什么新功能。」

工程开发和产品团队应该如何降低为关键应用程序打补丁的麻烦和成本?Eng 的建议是保持更新并且清晰地跟踪构建应用的技术和安全成本随时间的变化情况。在某个时间,该应用将需要得到修复或打补丁,其中包括语言更新和关键软件库的补丁。

Eng 说:「如果我现在在使用 4.5 版,而 4.6 版已经出来了,我可以使用该补丁,同时几乎不会产生功能方面的影响。开源软件库不会在小版本更新中对软件库进行重大修改。但如果你现在使用的是 2.0 版,那么你就必须得更新到 4.6 版,这个过程会很痛苦」。 对于使用庞大 npm 生态系统的 JavaScript 来说,更新软件库这个问题可能会更严重一点,但 Java 和 Python 都有各自的大型生态系统:Maven 和 PyPI。

Eng 表示 JavaScript 应用平均有大约 400 个依赖关系。如果来看第 90 百分位数的 JavaScript 应用程序,它们的依赖关系数量可达 1000 或 2000 个。 应用安全公司 Snyk 曾解释说影响 JavaScript、Ruby、Java、PHP 和 Python 的大多数安全漏洞都源自项目中加载的主要组件之间的间接依赖关系。 还有一点,某些 JavaScript 软件库非常受欢迎,多达 80%-90% 的 JavaScript 应用在使用它们。

Eng 说:「只要这些软件包中某一个包里有一个漏洞,你就继承了该风险。而且这不只是安全风险。」 他指的是 JavaScript 软件库 left-pad 曾出现过的情况:2016 年的一场争吵之后,一个开发者将该软件库移出了 npm。 「它从 GitHub 上消失了,然后突然之间,三分之二的互联网崩溃了,因为它们全都依赖这个几行代码的软件库来确定一个数是否在左侧填充了零。」 原文链接:https://www.zdnet.com/article/programming-language-security-these-are-the-worst-bugs-for-each-top-language/

责任编辑:xj

原文标题:用哪种编程语言写的应用漏洞最严重?

文章出处:【微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

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

    关注

    20

    文章

    3006

    浏览量

    116825
  • C语言
    +关注

    关注

    183

    文章

    7646

    浏览量

    146122
  • 编程
    +关注

    关注

    90

    文章

    3723

    浏览量

    97430

原文标题:用哪种编程语言写的应用漏洞最严重?

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Java并发编程的“基石”——多线程概念初识

    AI 算力调度底层:Java 并发基石与未来技术融合 当我们在屏幕前流畅地与大语言模型对话,或是看着自动驾驶系统瞬间处理海量视觉数据时,往往只会惊叹于 AI 算法的精妙。然而,在这层绚丽的应用外衣
    发表于 04-16 18:50

    使用PYTHON进行的跨平台仿真

    如何使用编程语言Python来调用和控制VirtualLab Fusion中的模拟。请查看下面链接的文档,以找到关于如何设置和使用Python和VirtualLab Fusion之间的
    发表于 04-02 08:21

    汽车网络安全开发语言选型指南:C/C++/Rust/Java等主流语言对比+Perforce QAC/Klocwork工具支持

    汽车网络安全如何选编程语言?C、C++、Rust、Java……谁更适合AUTOSAR、ISO/SAE 21434?一文了解8种主流语言的优劣与适用场景,以及Perforce QAC/K
    的头像 发表于 12-26 11:13 649次阅读
    汽车网络安全开发<b class='flag-5'>语言</b>选型指南:C/C++/Rust/<b class='flag-5'>Java</b>等主流<b class='flag-5'>语言</b>对比+Perforce QAC/Klocwork工具支持

    分析嵌入式软件代码的漏洞-代码注入

    。 虽然这是一个代码注入安全漏洞,但由于它唯一可能造成的伤害就是可以被用来获取栈中的数据,所以它还是可以被原谅的。 可如果位于那里的是敏感数据(如密码或证书密钥),情况就会变得很糟;而且由于攻击者还可
    发表于 12-22 12:53

    Python中借助NVIDIA CUDA Tile简化GPU编程

    NVIDIA CUDA 13.1 版本新增了基于 Tile 的GPU 编程模式。它是自 CUDA 发明以来 GPU 编程最核心的更新之一。借助 GPU tile kernels,可以比 SIMT
    的头像 发表于 12-13 10:12 1398次阅读
    在<b class='flag-5'>Python</b>中借助NVIDIA CUDA Tile简化GPU<b class='flag-5'>编程</b>

    单片机C语言编程的心得

    这个8*8按键程序的过程中,不管是在自己还是参考别人程序的过程中,发现自己对C语言有些基本知识点和编程规范有很多不懂的地方,有些是自己以
    发表于 12-08 07:44

    为什么单片机还在用C语言编程

    说起单片机我们就会想到C语言,单片机为什么还在用C语言编程?现在有很多很好用的高级语言,如VC、PYTHON、PHP等等,为什么这些
    发表于 11-28 07:37

    2025年最佳的嵌入式编程语言有哪些呢?

    嵌入式系统是现代科技不可或缺的一部分。它们存在于家用电器、汽车、住宅、医院、商店等各个领域。它们与我们的社会紧密相连。选择合适的语言来构建嵌入式系统对于成功至关重要。那么,2025年最佳的嵌入式编程
    的头像 发表于 11-14 10:27 1755次阅读
    2025年最佳的嵌入式<b class='flag-5'>编程</b><b class='flag-5'>语言</b>有哪些呢?

    一文了解Mojo编程语言

    Mojo 是一种由 Modular AI 公司开发的编程语言,旨在将 Python 的易用性与 C 语言的高性能相结合,特别适合人工智能(AI)、高性能计算(HPC)和系统级
    发表于 11-07 05:59

    Linux 编程语言盘点:从内核到AI的全栈选择

    在工控圈和嵌入式圈里,有一个常年被讨论的问题:  “在 Linux 上,到底该用什么语言编程?” 有人坚信:C 才是真正的工业语言。有人反驳:Python 才是效率王者。还有人推崇 G
    的头像 发表于 11-06 17:05 773次阅读

    Arm Neoverse CPU上大代码量Java应用的性能测试

    Java 是互联网领域广泛使用的编程语言Java 应用的一些特性使其性能表现与提前编译的原生应用(例如 C 程序)大相径庭。由于 Java
    的头像 发表于 11-05 11:25 933次阅读
    Arm Neoverse CPU上大代码量<b class='flag-5'>Java</b>应用的性能测试

    Python 给 Amazon 做“全身 CT”——可量产、可扩展的商品详情爬虫实战

    一、技术选型:为什么选 Python 而不是 Java? 结论: “调研阶段 Python,上线后如果 QPS 爆表再考虑 Java 重构
    的头像 发表于 10-21 16:59 624次阅读
    <b class='flag-5'>用</b> <b class='flag-5'>Python</b> 给 Amazon 做“全身 CT”——可量产、可扩展的商品详情爬虫实战

    FLASH烧/编程白皮书

    白皮书:如何烧Flash——不同场景不同需求下的选择认识Flash NAND vs. NOR如何烧/编程不同方案比较
    发表于 07-28 16:05 0次下载

    C++ 与 Python:树莓派上哪种语言更优?

    Python是树莓派上的首选编程语言,我们的大部分教程都使用它。然而,C++在物联网项目中同样广受欢迎且功能强大。那么,在树莓派项目中选择哪种语言
    的头像 发表于 07-24 15:32 1103次阅读
    C++ 与 <b class='flag-5'>Python</b>:树莓派上<b class='flag-5'>哪种</b><b class='flag-5'>语言</b>更优?

    跟老齐学Python:从入门到精通

    础的学习者介绍一门时下比较流行、并且用途比较广泛的编程语言,所以,本书读起来不晦涩,并且在其中穿插了很多貌似与Python 编程无关,但与学习者未来程序员职业生涯有关的内容。 获
    发表于 06-03 16:10