应大家多次要求,把Adblock Plus创始人Wladimir Palant这篇私人的博文翻译成中文。希望能解决一些困扰了大家很久的疑问。感谢大家一直以来对Adblock Plus的支持,我们会按照初衷把更好更完善更安全的Adblock Plus呈献给大家!
注:明确说明此文章发布于我的私人博客,而非Adblock Plus官方博客。本文仅代表我的个人观点。去数落一个竞争对手似乎并不明智,但我不想将我的发现就此掩埋。如果您来这里只是为了抨击Adblock Plus,而并不在意这篇文章本身,那么还是请您务必读一读文末的再编辑部分。
在Chrome浏览器上,目前有两种流行的广告拦截插件可选:Adblock和Adblock Plus。除开两者名字令人混淆,他们是毫不相干的插件。而我负责的是后者,然而时常有人会问我会推荐Adblock还是Adblock Plus。因为Adblock Plus在Chrome中当然还有很大的成长空间,所以我一般都用这样一句话作为答案:“这两种插件虽然有不同的开发过程,但是最终产品大致相同。”但最近我在检查Adblock时震惊地发现情况有所变化,而且变化很大。所以下次再有人问我Adblock和Adblock Plus有什么区别,我就会让他们来看这篇博文。
开放式发展
Adblock在一开始是一个开放式项目。它使用了谷歌代码托管以确保人们可见其源代码并进行编写。但是,该代码库在2013年8月已经停用。新的项目描述为人们提供了可自行下载的源代码包,所以您仍然可以看到源代码,但想提取个人改动将会废您九牛二虎之力。
有其他人也注意到了这一点。Adblock的支持人员就曾许诺这种情况只是暂时的,一个全新的源代码库将很快在Github上创建。我确实找到有地方提及了这一个代码库,所以在某个时候它一定已经公开过。但现在它好像已经被标记为非公开了。
其他几次讨论也提到了这个话题,特别是2014年1月的这一次。这一次支持人员突然谈及他们想保持不公开的一些改动,这也是为什么他们不能公开代码库。这次讨论中,在时机成熟之前都不公开这样的说法听起来就像愚人节玩笑一般。讨论最终以“Adblock在近期不会有公开Git库”作结,而并没有对一些评论所说的工作流(将公开和私人改动分离到不同的库中)失效的情况做出任何解释。
结论:Adblock悄然从一个开放式发展典范转而开始向用户隐藏其改动。用户不会得知这些决定,也不会了解其背后的原因。源代码存档得以留存只是为了假装Adblock仍然是一个开源项目,这些都很难被发现,而项目所有者显然希望没有人能够从其中提取个人改动。
他们在隐藏什么?
不知道别人怎么想,但我立马就有冲动去下载源存档来看看其中实装了哪些改动。我就做了这些。源存档中有一份改动日志,但您还是亲自去看一看为好。以下是一些要点:
Adblock 2.6.11(2013-10-25): Adblock每天发送一个唯一用户ID至Adblock服务器(您知道这点的,对吗)的功能得到扩充。服务器现在可以决定用户对调查可见——调查将立刻在新的标签页中打开,无论用户在进行何种操作。
Adblock 2.6.14(2013-11-09): Adblock现在不只向服务器发送唯一用户ID,它也会传输用户设定以决定是否通过Google Search广告。这一改动日志信息叫做:“设定测量。”
Adblock 2.6.20(2014-02-11): Adblock在每次启动时将向goldenticket.disconnect.me发送请求——但在安装插件前两天不会发送。一段时间后才会发现,Adblock显然和Disconnect.me有合作,并为他们的服务做广告来挑选用户。Disconnect的功能实际上已经和Adblock捆绑,其搜索中的广告也被加入了白名单。还有一点也有意思:上文提及的唯一用户ID将在每一次用户访问getadblock.com的时候被发送至该网站,在Adblock用户访问getadblock.com.malicious.com及任何在主机名中带有getadblock.com的网站时也被会发送。如果我拥有一个靠广告收益来维持的网站,我就会在每个页面插入一个隐藏框,并用这个bug来追踪Adblock用户——或许有的网站已经跟我想到一起了?改动日志是如何来描述这些改动的呢?——“调查Beta测试”,是的,就这样。
Adblock 2.6.21-2.6.27: Disconnect.me的功能得到重大改动,如同其开发者亲自操刀一般。试用和付费会员功能实装,Disconnect搜索广告白名单微调。根据改动日志,所有这些改动都叫做“调查Beta测试”。
Adblock 2.6.29(2014-04-28): “Adblock自定义过滤器”(Adblock特有过滤器列表,默认安装并被列为推荐)加入一组过滤来将Mixpanel 在Adblock网站上的追踪加入白名单。
Adblock 2.7(2014-06-06): Calling home功能得到扩展。现在除用户唯一ID,Adblock版本,操作系统,是否允许Google Search广告以外,还将发送用户地点信息。Adblock还将向getadblock.com(或者其他提出友善请求的网站)反馈Adblock是安装之初还是已经使用了一段时间——这仍然是是唯一用户ID之外的东西。这个功能在Adblock 2.7.2中调整的稍稍多一点。
Adblock 2.7.4(2014-06-20): 可以在扩展中看到改动日志了,哇哦!突然间,有意义的改动日志信息再次加入了,而不再只是“bug修复”或是单纯说着关于GitHub这种没有私有库权限没人能知道的事情。现在人们只需要确认这些信息是否符合真正的改动了……
结论:如果一个项目突然开始闭门造车,通常是有坏事发生。在Adblock的情况中,他们通过与Disconnect.me合作来将其用户货币化却不想任何人察觉。当人们发现并开始提出疑问,他们就想方设法将这些变化产生的影响轻描淡写地带过。
隐私怎么办?
来自Adblock项目页面:
隐私至高无上。
其下写着:
Adblock除运行所需信息外不会以任何理由保存或检索您的个人浏览习惯或者信息。
他们是这样说的。在上文中已显而易见,Adblock并不顾忌分配唯一ID给其用户来收集有关用户的数据(比如他们使用了什么设置)并在每一次他们访问Adblock网站时追踪他们。您也不能避免访问他们的网站因为扩展会时常将您送去那里,尤其是在第一次运行时。没有隐私政策,所以没有人知道这些数据会发生什么。有关Adblock隐私政策的讨论因为一些原因没有公开,我猜在其中涉及了他们收集到了什么数据。
不只这点,Adblock也很疏忽地实装了这种“特性”使任何其他网站也能够追踪Adblock用户。而且他们明确允许Disconnect.me无论Adblock用户何时启动浏览器都得到通知。而至少Disconnect.me有隐私政策并且声明不会收集用户数据。
结论:Adblock只是假装关心用户隐私。从其行动可以看出,在他们做决策时隐私考量显然无足轻重。
Adblock Plus表现更好吗?
是的,我认为我们更好。我们会尽力去开放并透明化我们做的一切。我们的源代码库完全公开(实际上在我们的服务器和GitHub上都可以使用,以便更多的人能找到),我们有公众问题跟踪和公众代码评审。更重要的是,我们会在博客公布所有重大改动(这些公告会定期由发布者整理),真正影响到我们所有用户的改动将在扩展本身公布。这也意味着我们同样会公布争议性的决定,而我们知道这些决定会引起不快的讨论。
我们有一份非常详细的隐私政策。更重要的是,我们不只会说我们不去收集任何必须以外的数据——我们会尽力说到做到。这就是说,举个例子,我们当然不会对用户的ID开刀;这就是说,首次运行页面是扩展的一部分——我们的服务器不需要知道有人安装了我们的扩展;这就是说,我们只会去估计我们的用户数量而不是直接去计算;这就是说,我们对用户如何安装Adblock Plus知之甚少——除非这些用户决定告知我们。有许多事情我们不得不说:“我们不能这样做。”但我认为对我们的用户,我们要抱有这样的尊重。
编辑(2014-08-04 09:20):Adblock的两个新版本在博文发表后发布。Adblock 2.7.9修复了我在上文种提及的bug,现在只有getadblock.com可以追踪Adblock用户而没有其他网站了。从Adblock团队的回应来看(见下方评论27楼),看来我所提及的其他问题并没有被当回事。实际上,Adblock 2.7.9再次扩展了Calling home功能,现在还会发送您屏蔽的广告数量。
编辑(2014-07-30 10:54):我一般不会接受与话题无关的评论。但是,每次一些与博文关系很小的话题出现时总有些人实在是太想用错误的信息来黑Adblock Plus,而且在我为了让讨论更有意义而删除他们评论时还要指责我审核太严格,所以我在这里就放松这个规则,回复那些跟话题只有那么一点点关系的评论。尽管如此,请理解我在此不容忍任何侮辱。同时,我会确保那些我已经回复而又重复出现的评论不可见。所以如果您来这里是为了黑Adblock Plus的,那请确定您已经看过8楼,11楼和22楼的回复。目前有4条评论不可见:两条包含了侮辱性语言,一条与FUD有关但没有任何深层内容,还有一条离题太远。