前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通过公开的自动构建发布开源项目的库的安全意义

通过公开的自动构建发布开源项目的库的安全意义

作者头像
林德熙
发布2020-08-03 20:43:51
3180
发布2020-08-03 20:43:51
举报
文章被收录于专栏:林德熙的博客林德熙的博客

这是比较有争议的内容,为什么我推荐开源项目的库应该采用开源的 CI 公开进行发布。本文主要来聊安全的问题,本文的观点没法完全让小伙伴信服,只能说是我自己的看法

安全的问题说的是什么问题?假定我在网上找到了一个库,这个库有一个二进制的发布,如 NuGet 包。此时尽管有代码,请问我是否可以信任这个二进制的发布的库

这里涉及到的一个问题是,我无法了解到这个二进制的库是否真的从这个开源仓库里面构建出来。我无法了解到这个二进制的库是否没有添加了后门才发布

而如果此时我可以看到这个库的这个版本是通过公开的自动构建的方式构建的,那么我会更信任这个二进制发布的库

而我也可以通过相同的方式自行构建自己的一份二进制文件

一个开源的项目的代码是有很多小伙伴去 review 的,因此我可以相对信任这个开源的项目里面应该是很少会存在有意添加的后门。或者我可以认为网络上充满正义而技术强大的小伙伴会给出警告

因此相对于闭源的项目,开源项目的安全性都会更高

而对于二进制的库,假定无法了解他的制作来源,那么对此的信任度将会比较低。例如这是一个官方作者没有发布的库,而是由第三方开发者发布的库。或者这个库里面的实际代码和开源项目不匹配,或者在发布的时候被添加了后门等

或者我期望自行发布,而没有自动构建的存在,我需要用更多的精力才能让发布自己的二进制版本

但是否仅有二进制的库就不能保证安全?其实不然,因为可以通过反编译的方法,依然可以阅读到相应的代码。但是相对于开源的代码来说,阅读反编译的逻辑将会缺少交流。你阅读过这份代码,但是我没有。你发现了问题不采用,而我不知道

而采用公开的自动构建发布是否能保证安全?依然不能,因为有强大的程序员是可以无意给你挖一个深坑,即使开源代码,你也不知道其实埋了后门。或者没有精力去阅读

因此有公开的自动构建的发布的逻辑的优势在于:

  • 其他开发者可以了解到发布的二进制包的制作过程
  • 其他开发者可以方便在此基础上做二次发布,自己发布的相对放心
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档