解密开源技术的污点
任何时候,当”开源”这个短语被用来描述一个技术或软件平台时,一种不稳定和缺乏安全的感觉立即出现。
对企业用户来说,开放源码最初可能显得不安全,这是有原因的。当一个东西是开放源码时,它意味着该软件有开放和可查看的代码,程序员或编码员可以对其进行编辑、建议和修改。这给人一种错觉,即该平台在不断变化,不受保护,或者有害的或不良的变化会随着时间的推移而毁掉该工具。这创造了一个关于开源的误解或神话,我想破除它。
最常见的误区是,任何和所有的贡献者都可以在任何时候对开源工具进行修改和编辑,类似于人们对维基百科进行修正和修改的方式。这是不正确的。在开源项目中,编码员和开发人员可以对代码进行增强、修改和补充,但不为人知的是,这些代码贡献必须通过拉动请求提交给专有工具的所有者。然后,这些拉动请求被审查、批评,并被送回给贡献者进行编辑和更正。
作为他们的开源工具的看门人,主要开发者有权控制什么被添加到他们的工具,什么不被添加到他们的工具。如果他们觉得没有必要,他们可以拒绝贡献,他们可以以各种理由退回请求,例如代码不严谨或添加不完整,他们还可以对贡献提出建议,使其在被添加到工具时更加有用。这个把关过程不断重复,直到对软件的添加或修改被认为是有用的,并得到了完善。直到这时,新增加的内容才被确保并被添加到开源工具中。
开源还允许有能力进行分支,制作不同版本或自定义版本的工具。这对于希望在他们的组织中使用该工具的商业用户来说,听起来也很可怕。如果贡献者想对开源工具做一些所有权人不同意的补充,这就是他们可以分支并对他们自己版本的代码进行编辑的地方。然而,这丝毫不影响工具的主分支。主版本的所有权人对拉动请求和修改有完全的控制权,以保持他们的平台安全。无论其他用户有多少个分支,主版本对所有用户来说都是完整和安全的。
有了适当的把关人以及编辑和添加的过程,开源工具就具有了固有的安全性。没有必要仅仅因为工具是开源的就害怕它。更重要的是,使用开源工具还有很多好处。如果一个组织正在围绕其版本的开源工具建立一个公司,那么在安全措施、拉取请求筛选等方面很可能有严格的规则。另外,如果一个公司支持一个开源工具,那么它可能和类似的封闭源代码工具一样好,甚至更好。这是因为开源工具有专门的开发人员团队不断地添加和构建该工具,还有无限多的外部贡献者添加通过上述把关人审查过程的附加内容。
同样,开源工具也有贡献者社区,还有专门的团队可供用户支持。社区越大,对该工具的支持就越快、越好。使用开源的另一个被遗忘的好处是定制的潜力。如果有人需要用于特定用例的工具,但该工具还不具备用于该工具的能力,则可以发出请求来添加所请求的特性。对于封闭源代码工具,如果该功能不存在,用户除了希望最终添加该功能或在其他地方寻找提供解决方案的其他辅助工具外,别无选择。
虽然我们已经破解了一些关于开源软件的最大神话,但是在选择这样的工具时,仍然存在一些风险需要注意。黑客和供应链攻击可能发生。基于上述原因,开源是值得信赖的,正如 Ars Technica 所指出的,“大多数人不会再三考虑从已知开发人员的官方网站安装软件或更新。随着开发者继续使软件和网站更难开发,过去几年来,黑帽越来越多地利用这种信任,通过在源代码中毒传播恶意软件。”
当这种情况发生时,原始代码团队通常会在几天内快速解决。然而,在那个时候,可能会发生数千次下载,给用户带来危害。避免这种情况的一个好做法是,只有当公司或原始开发人员声明有新版本可用时,才下载工具的最新版本。另一种避免恶意开源下载造成伤害的方法是在问题发生时立即向社区报告。开源的一个好处是用户和创建者之间的连接,及时解决报告问题可以帮助降低风险。
围绕着开源有一个很大的污名,但没有必要这样。成千上万的人每天都在使用许多常见的工具,如 Elastic、Linux、Python 和 Firefox,它们是安全的、值得信赖的和开源的。开源工具–尤其是公司制造的工具–是可靠的,安全的,可以使用的。下次你考虑为你的组织实施软件时,不要对开源选项有成见;它们可能正是你正在寻找的东西。
来源:
本文文字及图片出自 InfoQ
你也许感兴趣的:
- 【外评】电脑从哪里获取时间?
- 【外评】为什么 Stack Overflow 正在消失?
- Android 全力押注 Rust,Linux 却在原地踏步?谷歌:用 Rust 重写固件太简单了!
- 【外评】哪些开源项目被广泛使用,但仅由少数人维护?
- 【外评】好的重构与不好的重构
- C 语言老将从中作梗,Rust for Linux 项目内讧升级!核心维护者愤然离职:不受尊重、热情被消耗光
- 【外评】代码审查反模式
- 我受够了维护 AI 生成的代码
- 【外评】Linux 桌面市场份额升至 4.45
- 【外评】作为全栈开发人员如何跟上 AI/ML 的发展?
你对本文的反应是: