因为 Clash for Windows 的闭源问题和人小吵一架,刨去无效沟通以外的内容如下:
对方认为:闭源软件的作者往往因为可以添加广告,而有更好的长期维护积极性,从存续性、后续功能完善的角度,闭源软件更值得信任。CfW 的作者亦是 Clash 周边软件作者中维护最积极的一个。
我认为(并未在聊天中指出,只用币圈的燃料、NFT 和 DAO 对积极性进行了阴阳怪气,对不起):开源和闭源软件的领域不能一概而论。翻墙软件是一个市场失灵严重的领域,离完全竞争市场很远,市场竞争能带来的好处有限。翻墙软件的市场失灵有以下几个因素:垄断、交易成本、信息不对称。其中信息不对称是其显著区别于其它软件的特征。
CfW 作者的言论亦可作为我的支撑:CfW 一直处于闭源状态,作者有在 CfW 中插入广告获得收益,从而符合对方的“积极性”条件。从理论而言,CfW 的每一个用户(改版删了广告的除外)都是 CfW 作者的收入来源,然而作者对其用户却出言不逊(注:作者的说法完全错误,这个 XSS 和不开沙盒就是有关的),这在一个完全竞争市场中一般是不会发生的。
Clash for Windows 在 2022 年和 2023 年初各爆出了一次远程代码执行漏洞,它的安全性应当受到更多的质疑。(当然,开源在事实上提供的安全性也没有多多少)2022 年初的漏洞见上,2023 年初的漏洞见:https://web.archive.org/web/20230115024746/https://github.com/Fndroid/clash_for_windows_pkg/issues/3891
该 issue 中提出 clash premium 需要分一部分锅,这里有一点问题。rule-providers 的目录穿越问题事实上来自 clash 内核(而并不局限于闭源的 clash premium)。然而,CfW 不加隔离的 JavaScript 环境造成了漏洞的扩大。并且我们显然可以发现,即使此前的 issue 已经提醒作者开启 renderer 沙盒,作者却并未采纳。如果是开源软件,那么就法理而言,我们可以说用户“不 fork 新版本自己改、不审查代码而接受这种危险”,而 CfW 作为闭源软件,法理而言用户无权审查和修改其代码,开发者需要为此承担更多的指责。