Emacs 插件安全吗

使用 Emacs 已有半年时间,也慢慢学会了用 Lisp 增强一些自己想要的功能。Package 里有几十个包,不禁思考这样一个问题:Emacs 里面的包都是安全的吗?有没有人会设计一种恶意代码,例如上传我正在编辑的文档等?需知 Emacs 是允许访问我的各种文件的。请问大家是怎么考虑这个问题的?

这个问题不可避免,不光emacs,各种基于第三方包管理器的代码库都会存在这个问题。

隔壁node的npm不是天天为此出事。。。

只能看人品了。

这个问题如果设置好防火墙规则应该是可以避免的吧?比如仅允许Emacs https连接几个信任网站,要不干脆不允许出站。不过感觉没啥必要,emacs社区有一种大家都是熟人的感觉,没啥可防的。

是的,不安全,绝大多数开源软件都有被劫持嵌入恶意代码的风险,而且作者根据协议不会为此造成的损失负责。这就是为什么要校对哈希和签名。

然后风险归风险,就和当初宣称 OS X 没有病毒同理,用的人还是太少,中招机会不高。

然后就是不要用 root 开 Emacs。

对于 package.el 用户而言,GNU ELPA 是安全的,因为它是 Emacs 的一部分,由 Emacs 开发者审查。MELPA 上第一次上传的包是安全的,因为 MELPA 维护者会审查,但这个包后续的更新不会被 MELPA 维护者审查,任何 MELPA 用户如果有遇到恶意代码的包,应当报告给 MELPA,他们有责任尽可能地确保所提供包的安全性。

你把钱存在银行里,并非因为银行没有办法吞了你的钱,而是因为你相信它不会这么做。所以说安全与否常常是个信任问题,这种信任在开放源代码这里更容易建立,如果发生了你所说的情况「例如上传我正在编辑的文档等」,你可能会察觉到、并且完全有能力知道怎么回事。

1 个赞

一般作者都不会这么做,因为代价太大。 除非代码仓库的访问权限丢失造成被上传恶意代码。

我看过一篇文章说是emacs的tls有什么缺陷,所以我们平时的用法都很危险来着,但是具体内容我不记得了,所以文章也找不到了……

另外说起npm,前不久看了一篇很有意思的文章: I’m harvesting credit card numbers and passwords from your site. Here’s how. 搜索中又发现了我还没看的第二集:Part 2: How to stop me harvesting credit card numbers and passwords from your site

许多Windows系统的Emacs用户还不开TLS……

可能emacs神经比较粗

谢谢,确是这么回事。感谢回复,你写的 youdao dictionary 的package 很好。一直在用。

恩,我平时也只用一些比较著名的包。谢谢回复。Very interesting papers.

那玩意比有道词典好用。有道词典现在的客户端软件好卡,广告也多,有时候想查个词总得卡个几秒,人都急死了。扎心。