有史以来复制最多的 StackOverflow 代码段存在缺陷!
对于开发者而言,Stack Overflow 和 GitHub 是最为熟悉不过的两大平台,这些平台充斥着大量开源项目信息和解决各类问题的代码片段。而就在近日,Palantir的 Java 开发人员,也是 StackQflow(与编程相关的问题的问答网站)中排名最高的参与者之一 Andreas Lundblad 却承认,一段自己十年前写的代码,也是 Stack Overflow 上复制次数最多、传播范围最广的代码段均包含一个错误。
据悉,2018年发表的一篇学术论文[PDF]确定了在网站上发布的代码片段 Lundblad 是从 StackOverflow 提取的复制最多的 Java 代码,然后在开源项目中重复使用。
该代码段以人类可读格式(例如 123.5 MB)打印了字节数(123,456,789 字节)。学者发现,此代码已被复制并嵌入到 6,000 多个 GitHub Java 项目中,比其他任何 StackOverflow Java 代码段都多。
而在上周发布的博客文章中,Lundblad 则承认,该代码存在缺陷,并且错误地将字节数转换为人类可读的格式。他表示,在学习了学术论文及其结果之后,已重新审视了代码。同时再次查看了该代码,并在其博客上发布了更正的版本。
STACKOVERFLOW 代码有时包含安全性错误
据了解,尽管 Lundblad 的代码段是存在一个琐碎的转换错误,仅导致文件大小估计稍有不准确,但情况或许可能会更糟。例如,该代码可能包含安全漏洞。如果这样做的话,那么修复所有易受攻击的应用程序将花费数月甚至数年,使用户容易受到攻击。
事实上,即使普遍认为从 StackOverflow 复制粘贴代码是一个坏主意,但开发人员还是一直这样做。
2018 年的研究论文显示了这种做法在 Java 生态系统中的普及程度,并揭示了复制流行的 StackOverflow 答案的绝大多数开发人员甚至都没有理会其来源。
从 StackOverflow 复制代码但没有署名的软件开发人员,实际上对其他编码人员隐藏了他们已经在项目内部引入未经审查的代码的情况。
这听起来像是一个过于警惕的声明,但在 2019 年 10 月发表的另一项学术研究项目[PDF]显示,StackOverflow 代码段确实包含漏洞。该研究论文在过去十年中在 StackOverflow 上发布的 69 种最流行的 C ++ 代码片段中发现了主要的安全漏洞。
研究人员透露,他们在总共 2859 个 GitHub 项目中发现了这 69 个易受攻击的代码片段,显示了一个错误的 StackOverflow 答案如何对整个开源应用生态系统造成破坏。
参考消息:
https://programming.guide/worlds-most-copied-so-snippet.html
https://www.zdnet.com/article/the-most-copied-stackoverflow-java-code-snippet-contains-a-bug/
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日一博 | 聊一聊 JavaScript 的 URL 对象是什么?
本文由葡萄城技术团队于OSChina翻译并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 如果我们自己编写从URL中分析和提取元素的代码,那么有可能会比较痛苦和麻烦。程序员作为这个社会中最“懒”的群体之一,无休止的重复造轮子必然是令人难以容忍的,所以大多数浏览器的标准库中都已经内置了URL对象。 那么现在,有了它,我们就可以将URL字符串作为参数传递给URL的构造函数,并创建它的实例解析URL内容了吗?答案是:“是的!”。 要使用URL构造函数创建URL对象,我们在以下代码中使用new来创建: newURL('https://www.grapecity.com.cn'); 在上面的代码中,我们创建了一个绝对地址的URL对象的实例。但同时,我们还可以传入一个相对地址作为第一个参数,并把相对地址的基础URL作为第二个参数来创建一个URL对象。可能比较拗口,我们举个栗子: newURL('/developer','https://www.grapecity.com.cn'); 看上面的代码,第二个基础URL参数必须是一个有效的绝对地址,而不...
- 下一篇
红帽企业 Linux 7 和 CentOS 7 收到重要内核安全更新
Red Hat 和 CentOS宣布了其 Red Hat Enterprise Linux 7 和 CentOS Linux 7 操作系统系列重要内核安全更新的可用性。据悉,这些更新解决了两个安全漏洞和许多其他 bug。 具体表现为,新的 Linux 内核安全更新此次修复了CVE-2019-14821和CVE-2019-15239两个漏洞。其中,CVE-2019-15239可能使本地攻击者触发多个“use-after-free”条件,导致内核崩溃或潜在的特权升级。 此外,内核更新还解决了多个 bug,包括有: check_preempt_wakeup + 0x109 处的 NULL 指针取消引用, pick_next_task_rt 出现恐慌, 适配器重置导致“检测到的Tx单元挂起”错误 VF LAG 配置上的平衡负载中断 加密 vmx 驱动程序上的安全性问题 单 CPU VM 在 open_posix_testsuite 期间挂起 ....... 敦促用户尽快将其安装更新到kernel-3.10.0-1062.7.1.el7.x86_64,并在成功应用新内核版本后重新启动计算...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS6,CentOS7官方镜像安装Oracle11G
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19