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

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

3天内不再提示

StackOverflow平台传播范围最广的代码段包含一个错误

汽车玩家 来源:开源中国 作者:白开水不加糖 2019-12-08 10:48 次阅读

对于开发者而言,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代码段都多。

StackOverflow平台传播范围最广的代码段包含一个错误

而在上周发布的博客文章中,Lundblad则承认,该代码存在缺陷,并且错误地将字节数转换为人类可读的格式。他表示,在学习了学术论文及其结果之后,已重新审视了代码。同时再次查看了该代码,并在其博客上发布了更正的版本。

STACKOVERFLOW代码有时包含安全性错误

据了解,尽管Lundblad的代码段是存在一个琐碎的转换错误,仅导致文件大小估计稍有不准确,但情况或许可能会更糟。例如,该代码可能包含安全漏洞。如果这样做的话,那么修复所有易受攻击的应用程序将花费数月甚至数年,使用户容易受到攻击。

事实上,即使普遍认为从StackOverflow复制粘贴代码是一个坏主意,但开发人员还是一直这样做。

2018年的研究论文显示了这种做法在Java生态系统中的普及程度,并揭示了复制流行的StackOverflow答案的绝大多数开发人员甚至都没有理会其来源。

从StackOverflow复制代码但没有署名的软件开发人员,实际上对其他编码人员隐藏了他们已经在项目内部引入未经审查的代码的情况。

这听起来像是一个过于警惕的声明,但在2019年10月发表的另一项学术研究项目[PDF]显示,StackOverflow代码段确实包含漏洞。该研究论文在过去十年中在StackOverflow上发布的69种最流行的C ++代码片段中发现了主要的安全漏洞。

研究人员透露,他们在总共2859个GitHub项目中发现了这69个易受攻击的代码片段,显示了一个错误的StackOverflow答案如何对整个开源应用生态系统造成破坏。

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

    关注

    19

    文章

    2904

    浏览量

    102989
  • 开源
    +关注

    关注

    3

    文章

    2985

    浏览量

    41716
收藏 人收藏

    评论

    相关推荐

    labview打开TCP报63错误代码

    时,可能会遇到一些错误,其中报错代码 63 是一种常见的错误代码。本文将详细介绍关于 LabVIEW 打开 TCP 报 63 错误的原因和可能的解决方案等内容。 首先,让我们了解一下什
    的头像 发表于 12-28 18:14 1440次阅读

    xlookup查询结果错误值什么情况

    XLOOKUP函数是Excel中的一种查找函数,用于在指定范围中搜索某个值,并返回所查找的结果。当使用XLOOKUP函数时,可能会遇到错误值的情况。本文将详细介绍XLOOKUP函数的错误值以及可能
    的头像 发表于 12-03 10:16 4150次阅读

    vlookup常见的12种错误

    VLOOKUP是Excel中非常常用的函数之一,它能够根据指定的值,在某一列范围内进行查找,并返回相应的值。虽然VLOOKUP是一个强大的函数,但是由于其复杂性和灵活性,常常容易出现一些错误。在本文
    的头像 发表于 12-01 11:19 1668次阅读

    python缩进错误怎么办

    缩进错误是Python编程中常见的错误之一,通常是由于代码块的缩进不正确导致的。Python是一种强制缩进的语言,代码块之间需要保持一致的缩进程度。 缩进
    的头像 发表于 11-29 16:43 889次阅读

    invalid synrax是什么错误

    是一种规则和约定,用于编程语言中正确书写代码的方式。语法错误通常是由于程序代码中存在不符合语法规则的结构或用法所引起的。当程序包含语法错误
    的头像 发表于 11-28 15:59 2819次阅读

    脚本错误scripterror怎么解决

    分析和排查。以下是一些常见的解决脚本错误的方法: 检查语法错误: 仔细检查脚本中的代码,看是否有拼写错误、缺少分号、括号不匹配等语法错误
    的头像 发表于 11-26 14:46 2975次阅读

    c语言代码错误怎么找

    当我们编写C语言代码时,常常会遇到一些错误。这些错误可能是语法错误,逻辑错误或者是运行时错误。无
    的头像 发表于 11-24 10:05 1460次阅读

    基于rt_thread实现c语言的try catch finally捕获崩溃错误代码

    支持捕捉空指针访问,未对齐操作,除零崩溃,等等错误,帮助你高效调试代码.
    的头像 发表于 09-27 11:47 391次阅读

    PCB传输线的传播速度

    由此看来,电磁场的形成快慢,以及由周围的介质材料特性共同决定信号的传播速度。一般存在一种误区,简单地认为信号的传播就是电流的传播,导线中电流是因电子的定向移动产生的,那么电子移动的速度就是信号的
    发表于 09-04 15:20 514次阅读
    PCB传输线的<b class='flag-5'>传播</b>速度

    如何使用C代码中的比特幅操作

    v1.1 Bitbanding 是 Cortex-M4 处理器的特征, 该处理器将每个单词绘制在记忆的别名区域, 将其绘制为记忆的比特波段区域。 这样可以让 SRAM 或外围登记册中的单个字段由单项指令
    发表于 08-31 09:58

    修改线程初始化程序名部分,stackoverflow为什么会消失?

    可能会stackoverflow,不断的寻找报错的位置以后发现,我将线程里的内容全部删除,加了延时函数。让线程不断运行,还是会stackoverflow。但神奇的是,我将线程的名字
    发表于 08-20 11:40

    了解 ADC 代码错误

    随着高速模数转换器(ADC)采样率的提高,ADC输出数据中的代码错误(也称为闪烁代码)问题也随之增加。代码错误定义为ADC输出
    的头像 发表于 08-17 15:09 642次阅读
    了解 ADC <b class='flag-5'>代码</b><b class='flag-5'>错误</b>率

    在Rust代码中加载静态库时,出现错误 ` rust-lld: error: undefined symbol: malloc `怎么解决?

    我正在 MCUXpresso IDE 中创建静态库。我正在使用 redlib 在我的代码中导入 ` [i]stdlib.h`。它成功地构建了
    发表于 06-09 08:44

    ESP12正在创建接入点,但99.9%确定它不在代码中是为啥?

    我有很奇怪的问题。我的 ESP12 正在创建接入点,但我 99.9% 确定它不在
    发表于 05-16 08:52

    摸鱼低代码平台分享

    摸鱼低代码平台希望打造一个基于低代码的无代码平台。即能给程序员使用,也能满足非专业人士的需求。** 摸鱼低
    的头像 发表于 05-06 17:40 1014次阅读
    摸鱼低<b class='flag-5'>代码</b><b class='flag-5'>平台</b>分享