菜单

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

2020年4月10日 - 4166m金沙

对于开发者而言,Stack Overflow 和
GitHub
是最为熟悉不过的两大平台,这些平台充斥着大量开源项目信息和解决各类问题的代码片段。而就在近日,Palantir的
Java 开发人员,也是
StackQflow(与编程相关的问题的问答网站)中排名最高的参与者之一  Andreas
Lundblad 却承认,一段自己十年前写的代码,也是 Stack Overflow
上复制次数最多、传播范围最广的代码段均包含一个错误。

图片 1

对于大多数企业IT部门来说,使用和贡献开源项目现在已成为日常生活的一部分。本文将介绍程序员认为2018年最重要的十大开源工具。

据悉,2018年发表的一篇学术论文[PDF]确定了在网站上发布的代码片段
Lundblad 是从 StackOverflow 提取的复制最多的 Java
代码,然后在开源项目中重复使用。

原标题:有史以来复制最多的 StackOverflow 代码段存在缺陷 来源:开源中国

在Black
Duck的2017年开源调查中显示,77%的受访企业使用开源构建内部应用程序,69%的受访企业使用开源组件来创建客户应用程序,69%的企业表示开源能够为其基础架构提供动力。受访的企业中有48%表示,他们组织中为开源贡献力量的人数正在增加。

该代码段以人类可读格式(例如 123.5
MB)打印了字节数(123,456,789 字节)。学者发现,此代码已被复制并嵌入到 6,000 多个 GitHub
Java 项目中,比其他任何 StackOverflow Java
代码段都多。

对于开发者而言,Stack Overflow 和 GitHub
是最为熟悉不过的两大平台,这些平台充斥着大量开源项目信息和解决各类问题的代码片段。而就在近日,Palantir的
Java 开发人员,也是 StackQflow中排名最高的参与者之一 Andreas Lundblad
却承认,一段自己十年前写的代码,也是 Stack Overflow
上复制次数最多、传播范围最广的代码段均包含一个错误。

GitHub目前拥有超过2400万用户和超过2500万个公共仓库。在许多领域中,开源项目已成为主导技术,希望让自己保持和最新技术同步的IT专业人员至少需要熟悉这些工具。根据目前的趋势,这里列出十个2018年最重要的开源工具:

图片 2

据悉,2018年发表的一篇学术论文确定了在网站上发布的代码片段 Lundblad 是从
StackOverflow 提取的复制最多的 Java 代码,然后在开源项目中重复使用。

1、Docker

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

该代码段以人类可读格式打印了字节数。学者发现,此代码已被复制并嵌入到
6,000 多个 GitHub Java 项目中,比其他任何 StackOverflow Java
代码段都多。

DevOps和云计算的双重趋势极大地增加了人们对容器技术的兴趣,Docker是容器技术中的领军者,在2017年的《云报告》中显示,70%的企业已经使用或正打算使用Docker,同时Docker也是企业部署DevOps的首选工具。

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

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

Docker允许开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,这使得将应用程序从一个地方转移到另一个地方变得很容易,有利于在混合云环境中使用。

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

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

2、Kubernetes

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

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

Docker帮助你使用容器技术,而Kubernetes则是帮助你更好的管理容器,Kubernetes由Google开源,其提供应用部署、维护、
扩展机制等功能,为Amazon、Microsoft
Azure和谷歌云平台等提供容器服务,就连管理Docker集群的Swarm也融合了Kubernetes技术。

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

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

在GitHub的
2017年10月份报告中,Kubernetes是审查频率排行第二的开源项目,也是热度最高的存储库。


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

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

3、Git

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

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

Git已经成为最受欢迎的版本控制解决方案。 在2017年Stack
Overflow开发者调查中,69.2%的开发者表示他们使用Git,这使得Git成为开发者首选。
相比之下,第二大最受欢迎的版本控制系统Subversion,仅有9.1%的受访者选择了该版本。

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

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

在开源世界中,基于Git的GitHub兴起,帮助这个版本控制系统增加了它的影响力。
随着越来越多的企业拥抱开源,因此他们也选择了Git。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图