|      1Cyrusss      2021-07-01 01:55:10 +08:00 via Android 代码放出来就是开源,而二进制文件没关系。 | 
|      2Cyrusss      2021-07-01 01:58:41 +08:00 via Android  5 你说的「不干净」编译是存在的,比如微软提供的 VS Code,它的「干净」版是 VSCodium 。 | 
|      3vk42      2021-07-01 02:02:28 +08:00  1 那除了 Gentoo 以外的各 Linux 发行版也算“伪开源“了? 我觉得关键在于项目开源的代码是不是能完整构建可用成品,之前有些所谓开源放点代码出来但实际啥都编译不出来,只能用他们自己的二进制 | 
|      4AkideLiu      2021-07-01 04:06:35 +08:00 via iPhone  1 release 的时候人家放 executable 只是方便你用...既然都开源了你不信任作者编译的可以自己编译啊。 说实话哈就算源代码里面嵌入点乱七八糟的,自己编译也不会每行代码都看吧。 所以可以相对信任 | 
|  |      5neteroster      2021-07-01 05:57:33 +08:00 via Android 有可能。 信不过自己编译。 | 
|  |      6msg7086      2021-07-01 06:08:27 +08:00 是有可能的。不放心可以从头来。 | 
|  |      7lesteryu      2021-07-01 07:10:24 +08:00 via iPhone Software supply chain attacks… | 
|  |      8expy      2021-07-01 07:39:24 +08:00  3 一样的代码保证编译出一样的程序。 https://en.wikipedia.org/wiki/Reproducible_builds 或者用 GitHub Action 来编译发布,公开配置文件就行了,不过需要信任 GitHub 。 https://github.com/marketplace/actions/github-action-publish-binaries | 
|      9jorneyr      2021-07-01 08:50:29 +08:00 楼主是不是有误会: 放在 Github 管理的东西都是开源的? | 
|  |      10cominghome      2021-07-01 08:53:29 +08:00 有可能,你可以自己编译源码 | 
|  |      12Rocketer      2021-07-01 08:58:27 +08:00 via iPhone 一样的代码用不同的编译器,编出来并不完全一样。RedHat 就是这么玩的,你拿着他的源码编译出来就是不如他。 | 
|      13jorneyr      2021-07-01 08:59:43 +08:00 @cathedrel Github 只是个存储用的仓库,存储的内容可以是私有的,也可以是开源的,只是大量开源的代码存储到了 Github,因为免费。 | 
|      14cathedrel OP @jorneyr 你这段话我本来就懂,我的问题就是:某些自称是开源的项目它们的可运行软件包是否真的是用“公开的干净的“源码编译出来的??有没有办法鉴别??有没有办法防范开源幌子下的后门和暗桩?? | 
|  |      15no1xsyzy      2021-07-01 09:15:43 +08:00  2 「开源」描述源代码的授权方式和(暗示地描述)与社区之间交互模式,提供二进制与「开源」与否无关。 比如 ries 你甚至找不到现成的可执行文件。 至于放 Github 且不开源的,我知道的就有 Mega Sync 的客户端,是 Code Review License,属于「源代码可获取许可」,应当还有 MongoDB 这种 Server Side Public License 当然,根据 Github ToS,合法版权持有者上传到 Github 的代码具有最低程度的可获取性。 | 
|  |      16no1xsyzy      2021-07-01 09:18:28 +08:00  1 | 
|  |      17j0hnj      2021-07-01 09:28:34 +08:00 via iPhone  1 release 文件是作者可以随便上传的,跟库本身的代码没有强关联 | 
|  |      18agagega      2021-07-01 09:32:13 +08:00 via iPhone  1 是的。但作者可以提供一组编译参数,让你拿它的代码以同样的参数编译出来,然后比较两个可执行文件的 hash | 
|      19yfugibr      2021-07-01 09:33:56 +08:00 via Android 你去看看 v2*n, 源码只能编译得到很久以前的版本 | 
|  |      20icyalala      2021-07-01 09:43:33 +08:00  1 开源说得关键一点就是开放了源码, "伪开源" 一般是指责那些看上去是开源的项目,但是部分或者全部源码都没公开,而是只提供 binary 的行为。 至于那些有全部源码,也提供构建后二进制的项目,无论如何都算不上伪开源。 在 binary 加入后门或者私有内容,是安全问题。 | 
|      21freevioce      2021-07-01 09:46:49 +08:00 提点题外话   1. 偏商业用的开源工具版本不会是最新的 而且会编译 2. 不存在绝对的安全 还有黑客恶意修改源码 只要用了无论编译不编译都会中招 | 
|      22shangsharon      2021-07-01 09:49:07 +08:00 @agagega 相同参数编译出的文件 hash 不一定是一样的吧 | 
|      23coolcoffee      2021-07-01 09:58:57 +08:00  1 印象中能做大做强的开源项目,基本上都采用了 Circleci 、Github Action 自动化构建,人工去维护 release 的成本是非常高且容易出错的。投毒的可能性很低很低,至少收益上划不来。 但是整合没开源的私有功能是非常可能的,很多开源软件也都是这么玩的,但是这样会降低社区参与度。 | 
|  |      24icyalala      2021-07-01 10:11:45 +08:00  1 | 
|  |      253dwelcome      2021-07-01 10:16:50 +08:00 V2 不就有人放 Github 不开源,其实也没什么。 要说二进制文件有后门,全球网站下载安全系数里,github 上应该是很安全的。 | 
|      26skys215      2021-07-01 10:42:15 +08:00 开源=开放源代码,他开放了源代码,那就等于开源了。 但开源也有部分开源和全部开源。也有见过在 github 上只放编译好的文件,不放源代码的。 | 
|      27xinJang      2021-07-01 10:52:06 +08:00 引申一下,目前我们用的操作系统都是 win 或 mac 吧。 这...放了啥后门咱也不知道吧,所以重点是不想被放后门还是不爽被 github 里这个作者放了后门? | 
|  |      28lithiumii      2021-07-01 10:58:31 +08:00 我感觉楼上骂你的没看懂你的意思。 release 里的编译好的文件技术上可以是假的,可以跟仓库里的代码相比有加料,甚至完全无关,都可以做到。有些仓库甚至没有源码,只有 release,就是用 github 来分发而已 所以真正在乎的人都会自己编译 | 
|  |      29jim9606      2021-07-01 11:10:36 +08:00 Release 里的 Artifacts 是作者自己上传的,确实有这个可能。 最安全的方法肯定是自己编译,不过你没法重现作者的签名。如果你非常需要作者签名,退而求其次的方法是自行审查 CI 脚本,从可信的在线 CI 获取 Artifacts,例如 Github Actions 之类的。 | 
|  |      30AlexDec      2021-07-01 13:43:56 +08:00 不能排除,但可能性很小。一旦被发现了,开发者或组织,那不全球玩完了吗? | 
|  |      31ikas      2021-07-01 13:52:31 +08:00 当然有可能有私货...所以你看 fdroid 都是自己编译 apk..但是如果真的多想一步..那么开源软件用的 lib,是不是也要全部引入源码编译.... | 
|  |      32muzuiget      2021-07-01 14:08:44 +08:00  1 谁告诉你 github 上一定要开源的,私有项目也完全可以只放一个 README 文件,然后 release 页放二进制文件。 本来直接用 release 页的二进制文件就是基于对作者的信任,毕竟自己编译也麻烦。 | 
|  |      33Tink PRO 肯定有可能啊 | 
|      34Jirajine      2021-07-01 14:57:34 +08:00 via Android reproducible build 或者通过 GitHub action 发布。 各种发行版和 fdroid 这种自行编译打包,才能确保二进制与源码对应。 | 
|      35solider245      2021-07-01 15:15:13 +08:00  1 印象中好像是有过类似的事情的。 理论上,代码开源之后,软件都应该你自己在本地直接编译。但是开发者打包好了,你要使用直接下载就可以了。 那么,在开发者打包和你下载这个环节确实就存在漏洞,有可能会被利用。 所以,具体还是要看你的安全性来考虑。如果你要绝对安全,那么你查看源码,然后本地编译是最安全的。 如果你要求便捷性,那就直接安装开发者提供的包就可以了 | 
|  |      36Felldeadbird      2021-07-01 15:38:21 +08:00 你可以自己编译,然后和 release 里面的做对比。人家加料,和伪开源不相关。 | 
|  |      37coosir      2021-07-01 17:14:24 +08:00  1 当然是有可能的,毕竟无法保证 release 的内容就是对应源码编译出来的 如果不在乎自己的声誉,甚至连源码里也放暗桩,很多使用者并不会细看代码 | 
|      38billlee      2021-07-01 17:21:05 +08:00 我想起了某个反对 fdroid 的 android 代理软件 | 
|  |      39pmispig      2021-07-01 17:54:31 +08:00 这个种情况是肯定存在的,还不少 | 
|  |      40zerofancy      2021-07-01 21:33:03 +08:00  1 有。 1. Typora 本身并不开源,只是用来收集 issue,但仍然有很多人认为 Typora 是开源的。 2. tox 的某个客户端实现 Tok ( https://github.com/InsightIM/Tok-Android )基于 c-toxcore ( GPLv3 )开发,其在 github 发布了 v1.0 的代码,而后来添加的功能在应用商店(以开源自由等说法宣传)发布版本,但并未更新 github 代码。 | 
|  |      41cctv6      2021-07-01 21:43:09 +08:00 是有可能的,不光是 release 部分,直接 git push 上去的代码也是可以包含二进制文件的,如果代码下载下来不自己过一遍,直接打包,也是有可能发现不了的。 | 
|  |      42Trim21      2021-07-01 21:49:48 +08:00 via Android 完全有可能,release 里面的 exe 放什么都有可能。 | 
|  |      46jfdnet      2021-07-02 08:10:01 +08:00 源代码都有。你信不过可以自己编译。 | 
|  |      47kingfalse      2021-07-02 08:20:09 +08:00 via Android 源码是开源的,但是安装包啥的放上面就是图个方便,不然给你贴个百度网盘链接让你去下? | 
|      48zhuweiyou      2021-07-02 09:53:25 +08:00 你可以自己编译源码, 但是源码投毒你也不知道, 不会一行一行看代码吧... 既然用了 就信任了. | 
|      49ShionMashmallow      2021-07-02 10:10:08 +08:00 via Android 这种情况是有的,不开源但是 release 也会有说明吧( 比如说 Clash 两个内核 |