史上被复制最多的StackOverflow Java代码段中包含一个Bug

发表于:2019-12-06 09:47

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:java高级面试

#
Bug
#
bug
  时隔九年,开发人员更正了代码片段。
  一直以来,被复制使用最多的StackOverflow Java代码段中暗藏一个bug。该代码的作者,Palantir的Java开发人员Andreas Lundblad亲自承认了这件事。
  早在2018年发表的一篇学术论文[PDF]就指出,Lundblad在该网站上发布的一段代码是StackOverflow有史以来被复制最多的Java代码,该代码片段在各种开源项目中被重复使用。据悉,已被复制并嵌入到6,000多个GitHub Java项目中,比任何其他StackOverflow Java代码都要多。
  
  这段代码来自2010年9月,Lundblad对StackOverflow上某个编程问题的回答,以人类可读的格式(如123.5 MB)打印字节数(123456789字节)。而在上周, Lundblad承认该代码在数据转换逻辑上存在漏洞,他再次查看了代码并在博客上发布了更新后的版本。
  
  StackOverflow偶尔包含安全性错误
  尽管这次Lundblad的代码看似只是存在一个细小的转换错误,仅导致文件大小的计算稍有不准确,但实际上,这种安全性错误可能会带来更糟糕的后果。
  一段代码中存在含安全漏洞,那么修复所有受此影响的应用程序可能要花费数月甚至数年时间,期间,无数的用户安全都将遭受威胁。
  从StackOverflow直接复制粘贴代码并不安全,这一点众所周知,但还是会有很多开发人员继续这么做。2018年相关的研究证实了这种做法在Java开发过程中的普遍程度,很多复制StackOverflow答案的开发人员甚至都不会去追溯代码的来源。但严格来说,从StackOverflow复制代码却不注明来源的行为意味着开发人员在项目内部引入了未经审查的代码,这是严重违规的。
  这并不是耸人听闻,在2019年10月发表的另一项学术研究项目[PDF]表明,不少StackOverflow代码片段确实包含漏洞。
  该研究论文指出,过去十年,在StackOverflow上发布的69种最流行的C ++代码片段中都发现了重大安全漏洞。与此同时,研究人员在共计2859个GitHub项目中发现了这69个存在漏洞的代码片段,这表示,一个错误的StackOverflow答案,可能会对整个开源应用的系统安全造成极大的破坏。

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号