我正在专门查看emacs头盔,它具有以下属性:
- 它有成千上万的提交
- 它主要由一个用户维护
- 该维护者没有其他个人资料(社交媒体等),可以通过几次搜索找到
- 它是积极维护(今天)
由于我要在计算机上安装任意代码以在文本编辑器中使用,因此我想验证此代码是否经过了任何审查过程。我想说的是“好吧,它是开源的”,但是我离自己审核所有代码的能力还很远。我想假设社区中的其他人已经对其进行了审查,但其中一项可能是错误的,其中有两项是最新的提交。我还缺少其他策略吗?
记录起来很简单:如果贡献者使用的是一次性帐户,或者没有审查程序,那么“开源”就没有多大关系。
6
“ 验证 ”是一个大词。用这个词的常规意义来说,我认为答案是“您不(您不能)”。您可以跟踪图书馆的开发活动,还可以检查数字签名等,但是我相信没有什么可以确定的。
—
德鲁
好问题。FWIW,Emacs随附的代码已经过审核(通过emacs-diffs邮件列表),但是如果某些贡献者要添加安全漏洞,我敢肯定他能够做到这一点而不会被注意到。当然,如果在Emacs中已经没有很多大的意外安全漏洞,我会感到惊讶,因此我不确定这可能有多少问题。因此,我认为,为了能够获得更加令人放心的答案,需要将注意力集中在特定的简单威胁上(例如,检查代码是否执行某种非隐藏监视应该相当容易)。
—
Stefan 2015年
维护者多年来一直活跃在emacs devel上,可以通过搜索进行验证,因此可以保证:lists.gnu.org/archive/cgi-bin/…–
—
Tom
@Stefan,我只是想抽查。从我的角度来看,
—
abo-abo
mapatoms
可以用投入的“危险”组在一起start-process
,eval
和funcall
。当然会有一些误报,但是,如果程序包不使用任何这些功能,则可以肯定地将其标记为无害。
您需要添加新的
—
Stefan
make-process
,以及call-process
,dbus-<foo>
,make-network-stream
,然后vc-do-command
,vc-git-command
,...而且如果你把eval
和funcall
在“危险”的范畴,那么大多数/所有的包都是危险的。