文章转载自 OSCHINA 社区 [http://www.oschina.net]

正文

对于开发者而言,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 答案如何对整个开源应用生态系统造成破坏。

翻车了!StackOverflow上复制最多的代码存在缺陷!相关推荐

  1. 为什么 StackOverflow 上的代码片段会摧毁你的项目?

    昨天公司里碰到一件令人哑然失笑的事情.帮朋友公司做的一个项目,做SIT测试的时候发现一些bug,仔细查了下原因,原来是因为当初觉得这个项目比较简单,交给了几个新入职的新丁,也算是给他们练练手,结果其中 ...

  2. 解决从keil上复制代码粘贴后出现乱码的问题

    解决从keil上复制代码粘贴后出现乱码的问题 首先打开keil,打开一个工程 点击Edit中的Configuration'选项 点击configuration选项对话框中的Enconding,选择Ch ...

  3. 如何在StackOverflow上获得第一个标签徽章-以及为什么它很重要。

    by Angelos Chalaris 通过安吉洛斯·查拉利斯(Angelos Chalaris) 如何在StackOverflow上获得第一个标签徽章-以及为什么它很重要. (How to get ...

  4. angular面试题及答案_关于最流行的Angular问题的StackOverflow上的48个答案

    angular面试题及答案 by Shlomi Levi 通过Shlomi Levi 关于最流行的Angular问题的StackOverflow上的48个答案 (48 answers on Stack ...

  5. php图片上传为base64,php实现base64图片上传方式实例代码

    /** * base64图片上传 * @param $base64_img * @return array */ header("content-type:text/html;charset ...

  6. 市场上有很多低代码开发平台,不懂编程的人可以用哪些?

    市场上有很多低代码开发平台,不懂编程的人可以用哪些?这个问题一看就是外行问的啦,低代码平台主打的就是一个"全民开发",而且现在很多低代码平台都发展为零代码了,不懂编程也完全可以使用 ...

  7. 老码农教你在 StackOverflow 上谈笑风生

    老码农教你在 StackOverflow 上谈笑风生 本文作者: 伯乐在线 - 老码农 . 欢迎加入伯乐在线 专栏作者. 作为一个高大上的码农,你肯定用到过 StackOverflow,必须的.会有人 ...

  8. stackoverflow上一个最会举例子的专家

    https://stackoverflow.com/ Premraj是stackoverflow上一个一个最会举例子的专家,我特意收集了他的一些有趣的举例: Java弱引用最精彩的解释 https:/ ...

  9. excel 粘贴了HTML怎么删掉,Excel怎么删除网页上复制删不掉的文本框

    在日常工作中,经常会从网页上复制一些表格或内容粘贴进excel表格,但是会发现有很多网页元素在excel表中删除不掉,比如说文本框.单选框.复选框.下拉框等等.下面介绍给大家如何在excel中批量删除 ...

  10. linux上使用git把代码push到gitee上

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 linux上使用git把代码push到gitee上 文章目录: 1 git添加ssh公钥 2 代码推送的流程 从git的 ...

最新文章

  1. 北理工副教授曝学生论文被100%抄袭,对方为南方某985学生,该校抄袭事件还不止一起...
  2. CNN收购Beme视频分享APP 11个员工也将加入
  3. Dubbo启动时检查
  4. LVITEM结构-列表视图控件的一个数据结构
  5. scanf的一些小细节
  6. 约会用语(很经典的)
  7. 对类Vue的MVVM前端库的实现
  8. Linux内核深入理解定时器和时间管理(2):clocksource 框架
  9. 信息系统项目管理01——信息化和信息系统
  10. Java Web(1)高并发业务
  11. oracle定义变量
  12. c语言 dll库是线程安全吗,vsprintf是线程安全的吗?解决思路
  13. 安徽省二级计算机证书,在哪个网站打印安徽省二级计算机证书?
  14. 修改参数(parameter)
  15. 激光雷达的分类、主流激光雷达、原理是什么
  16. Android基础知识——Android SDK Manager详解
  17. 【UE4 第一人称射击游戏】13-瞄准开火
  18. 中国地区NPM使用可能最快的方法-记mirror-config-china的使用
  19. js实现数据分页算法
  20. ❤️AI 从入门到精通❤️

热门文章

  1. SpringBoot非官方教程 | 第二十二篇: 创建含有多module的springboot工程
  2. 中国域名商域名注册保有量28强:美橙互联夺回第八
  3. 在ASP.NET WebAPI 中使用缓存【Redis】
  4. 深山红叶PE工具箱嫦娥一号纪念版
  5. hdu 1864 最大报销额 模型为简单的01背包
  6. poj 2823 Sliding Window 双向队列,学习
  7. Patternodes 3 for Mac(创建图形矢量模式工具)
  8. Numbers 档案如何转Excel .xlsx 格式?
  9. Python基本数据类型(列表)
  10. Odoo与ERP传统软件有什么不同?