有史以来复制最多的 StackOverflow 代码段存在缺陷!

白开水不加糖
 白开水不加糖
发布于 2019年12月08日
收藏 9

对于开发者而言,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/

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.dbndka.com.cn]
本文标题:有史以来复制最多的 StackOverflow 代码段存在缺陷!
加载中

精彩评论

邹海彬
邹海彬
复制都有问题,全部自己写那还不问题更多?
韦小仇
韦小仇
面向StackOverflow编程
长白山山长
长白山山长
who care!
wffger
wffger
其实就是专业水平不高和职业规范缺失,。闭着眼睛复制粘贴的程序员就是流水线上的机器,而不是继承前人知识的工程师。
IdleMan
IdleMan
那也不一定,如果真到了复制粘贴就能实现功能,那就直接AI输出代码了。代码实现只是工具,业务设计、实现才是精髓,所以马化腾有了腾讯,马云有了阿里巴巴,盖茨有了微软。

最新评论(6

邹海彬
邹海彬
复制都有问题,全部自己写那还不问题更多?
韦小仇
韦小仇
面向StackOverflow编程
wffger
wffger
其实就是专业水平不高和职业规范缺失,。闭着眼睛复制粘贴的程序员就是流水线上的机器,而不是继承前人知识的工程师。
IdleMan
IdleMan
那也不一定,如果真到了复制粘贴就能实现功能,那就直接AI输出代码了。代码实现只是工具,业务设计、实现才是精髓,所以马化腾有了腾讯,马云有了阿里巴巴,盖茨有了微软。
返回顶部
顶部
天津时时彩