CSDN 发表于 2020-4-4 17:54:08

C 语言漏洞最严峻,PHP 最易受攻击,程序员该怎么写代码?

【CSDN 编者按】论编程语言的安全性,作为汗青最悠久的编程语言,C 仍旧是开源漏洞最多的一个,但 PHP 的变化却最大,为什么 PHP 更轻易受到攻击?
https://p1.pstatp.com/large/pgc-image/RpDxW4qAk5gWzu作者 | Michael Hollander
译者 | 弯月,责编 | 唐小引
头图 | CSDN 下载自东方 IC
出品 | CSDN(ID:CSDNnews)
以下为译文:
开源漏洞又一次出现了增加的趋势。
自 2017 年以来,我们看到社区陈诉的开源漏洞数目迅速增加。已往的一年也不例外,WhiteSource 的《开源漏洞状况》陈诉发现,2019 年共计陈诉了 6,100 个漏洞,而 2018 年陈诉的漏洞为 4,100 个。
两年之间的上升率高达 50%本身就可以上头条了。该陈诉还分析了哪些语言的开源漏洞最多,每种语言最常见的漏洞是什么,以及这些结果对于软件开辟社区怎样构建应用程序的启示。
2019 年每种语言最严峻的开源跨站脚本
在 2019 年发布的开源漏洞中,跨站脚本(Cross-site scripting,即 XSS)几乎是所有顶级编程语言中最常见的漏洞范例。
https://p1.pstatp.com/large/pgc-image/RvBNNtmB9nvyDr在上述编程语言中,最严峻的是 C 语言出现的缓冲区错误(CWE-119),而带有输入验证不妥(CWE-20)漏洞位居第二。
通过这些数据,我们可以看出与软件开辟社区有关的常见问题。详细来讲,此中的许多漏洞都是由于开辟人员没有得当限制用户可以执行的操纵而造成的,也因此粉碎了 Web 应用程序的安全性。
在大多数环境下,这些安全漏洞的原因都是编程不敷严谨。这些漏洞表明,重视根本的编码尺度对安全至关重要。
每种语言发布的开源漏洞比率
从整个陈诉来看,在已往的一年中,这些流行语言中开源安全漏洞的分布有所变化。
https://p3.pstatp.com/large/pgc-image/RvBNNv47upveQZ尽管 C 仍旧是开源漏洞最多(占 30%)的语言,但这是因为 C 是最古老的语言之一,我们至今仍在利用一些非常受欢迎的开源项目。无论你喜欢照旧讨厌 C 语言,无可否认,没有其他语言可以与 C 编写的大量代码竞争。
然而,令人不解的是 PHP 的变化最大,从 2009 年开源代码漏洞的 15%一路上升到 2019 年的 27%。我们不禁开始思考两个问题:首先,PHP 更轻易受到攻击的原因是什么?其次,人们是否仍旧真的在利用 PHP?
根据 2019 年 9 月的 TIOBE 指数陈诉,PHP 因其易用性而广受软件开辟技术力有限的 Web 设计师的欢迎,因此 PHP 变得越来越流行。该语言似乎用其易用性交换了安全性,而如今社区越来越擅长发现漏洞,因此这种折中方案很快就会成问题。
WordPress 等流行的应用程序仍在利用 PHP,但是这些应用程序的流行度也会很快下降。也就是说,趋势表明,PHP 的利用正在下降,如今开辟人员倾向于利用更流行的语言,比方 Python,在已往的几年中,该语言一直位居榜首,而且 Python 语言的漏洞发生率一直保持在较低水平。
成千上万的人都在聚焦开源的安全性
第三个问题是为什么我们如今会看到 PHP 的漏洞增加。尽管我所说的答案没有经过验证,但是我们可以从某种角度看待开源和应用程序开辟的趋势。
随着更多开源代码的问世,开源社区也受到了越来越多人的注目。我们还会思量通过增加自动化工具的利用来帮忙发现更多漏洞,因此被发现、修复和发布的 bug 也越来越多。由于通过 GitHub Security Lab 直接陈诉开源安全漏洞非常便利,因此已发布的漏洞数目将持续增加,尤其是拥有大量代码库但以前可能没有受到严酷审查的语言。
由于 WordPress 和 Drupal 等开源项目中大量利用了 PHP,因此还有很多 PHP 项目正在利用中。研究人员正在审查这些项目,而且他们发现了代码中可能一直存在尚未陈诉的漏洞。
进步的方向是更好的编程实践
本质上,安全漏洞就是一些 bug,它们可能会导致应用程序及其数据遭受粉碎。当编程错误威胁到数据的可访问性、完整性或机密性时,就属于安全漏洞范畴。在大多数环境下,这些漏洞只是一些人为错误。只要人类继续编写代码,错误就会发生,漏洞也会出如今我们的项目中。
因此,我们的问题是怎样管理所利用软件中的漏洞。首先,最重要的是我们需要遵循最佳实践来进行安全编程。虽然批评或人的代码不敷严谨很简朴,但只有批评还不敷,我们还需要提升自我。
除了遵循编程的最佳实践外,我们还需要检查代码中的漏洞,而不仅仅是在部署之前。在依赖项之上构建了核心应用程序,却发现此中存在一些严峻的漏洞,这是一件十分痛苦的事情,你不得不含泪默默地重新编写这部分代码。如果你了解软件开辟生命周期各个阶段测试错误的重要性,那么就应该明白检查可能将你和用户置于危险之中的安全漏洞同样重要。
英文:Is One Programming Language More Secure Than The Rest?
链接:https://dzone.com/articles/is-one-programming-language-more-secure
作者:Michael Hollander
译者:弯月
本文为 CSDN 翻译,转载请注明来源出处。
作为“百万人学AI”的重要构成部分,2020 AIProCon 开辟者万人大会将于6月26日通过线上直播形式,让开辟者们一站式学习了解当下 AI 的前沿技术研究、核心技术与应用以及企业案例的实践经验,同时还可以在线参加出色多样的开辟者沙龙与编程项目。到场前瞻系列运动、在线直播互动,不仅可以与上万名开辟者们一起交换,还有机会赢取直播专属好礼,与技术大咖连麦。
评论区留言入选,可获得价值299元的「2020 AI开辟者万人大会」在线直播门票一张。 快来动动手指,写下你想说的话吧!
https://p3.pstatp.com/large/pgc-image/RvBNMwgH1SbocL微软为一人收购一公司?破解索尼程序、写黑客小说,看他彪悍的程序人生!
中国无人机“老炮儿”回忆录
4 年 46 个版本,一文读懂 Spring Cloud 发展汗青
京东商城背后的AI技术本领揭秘 - 基于关键词自动生成摘要
互联网之父确诊新冠,一代传奇:任谷歌副总裁、NASA 访问科学家
从未如此简朴:10分钟带你逆袭Kafka!
无代码时代来临,程序员怎样保住饭碗?
页: [1]
查看完整版本: C 语言漏洞最严峻,PHP 最易受攻击,程序员该怎么写代码?