Adblock是Mozilla Firefox和Mozilla Application Suite网页浏览器所使用的扩展。Adblock允许用户拦截广告在内的各种页面元素,并使这些内容不被下载和显示。2004年起Adblock开发停滞,同时出现了分支版本Adblock Plus。这个版本对用户界面、过滤订阅和元素隐藏等功能进行了改进。Adblock Plus已经成为更加流行的版本。
Adblock Plus主要关注软件的可用性,并添加和改进了许多功能。它在主窗口上面有清楚定义的菜单项。另外可过滤项的列表也被整合到下方的面板,这一面板也可以从主窗口分体出来。广告过滤的表达式也增加了元素隐藏的功能。其它一些新功能如过滤器统计(计数功能),并可以对单一过滤器进行启用或禁用而不用删除过滤器。
和Mozilla内置的图像过滤器一样,Adblock根据内容的源地址拦截了HTTP请求,并可过滤IFrame、script及Flash。它也可以用自动生成的用户样式表来隐藏包括文字广告在内的页面元素。这个功能称为元素隐藏,它将拦截内容换成了隐藏内容。
Michael McDonald开发了Adblock Plus 0.5,并通过以下功能对Adblock进行改进:
·白名单;
·支持过滤背景图像;
·固定网址的过滤器订阅并自动更新;
·隐藏HTML元素的功能可以过滤更多的文字、图像及其它内容;
·对特定网站的广告进行过滤,而不是全局过滤;
·修复内存泄漏问题。
McDonald后来停止了开发工作并将其移交给Wladimir Palant。Wladimir Palant于2006年1月对代码库进行重写并发布了Adblock Plus 0.6
基本的过滤规则可以使用星号(*)作为通配符。列入白名单的网站及对象可以使用两个at符号(@@)开发,使其免受过滤。正则表达式可以在前后加上斜框(/)后使用。Adblock Plus也支持更复杂的语法来对过滤器进行更精确的控制。
下列是一些Adblock过滤器的示例。拦截example.com上的广告:
example.com#DIV(id=ad)
拦截任何在目录"banners"中的内容,或同以下规则相对应的内容(大小写不敏感):
*/banners/*
将example.com网站列入白名单:
@@http://www.example.com/
拦截Yahoo!的广告:
/yimg.com(.*/adv/|/a[^u])(?!vision)/
过滤器订阅
用户可以增加额外的过滤集。Adblock Plus可以使用一个或多个外部过滤器订阅,并自动进行更新。Filterset.G为这一软件并不兼容(Adblock Plus也特别建议不要使用Filterset.G,并给出了相应的理由),但其它的过滤集可以通过输入网址来添加。Adblock Plus的官方网站提供了已知的Adblock Plus订阅列表。
大量网站的拥有者,特别是网站上有各类网络广告的,认为包括Adblock在内广告过滤软件的应用会减少他们的收入。在某种意义上而言,这种行为就是一种盗窃行为。这个观点主要就是指网站的拥有者需要支付费用来维护服务器和带宽费用,以便继续提供免费内容。一些网站会使用计数器来禁止广告过滤软件的使用,如尝试检测是否存在广告过滤器并提示用户关闭软件,或直接阻止用户访问网页直至他们关闭广告过滤软件。这些做法得到了很多人的支持和反对。
比较著名的例子有,网站持有者Danny Carlton (a.k.a.Jack Lewis)禁止所有Firefox访问他的个人网站,不管他们是否安装Adblock Plus。他声称Adblock Plus用户实际上窃取了他的内容并相信Mozilla基金会要对认证和发布这一插件负责。Adblock Plus的开发者Wladimir Palant在他的Blog上作出了回应。一些其他的blogger也对这件事表达了自己的观点。
Adblock Plus也因移除Adblock的站点拦截功能而受到了批评。
首先是Adblock太强大了,如果使用共享出来的过滤规则,有可能会导致某些重要的信息被过滤,不过还好,我们能够通过工具栏上的图标随时暂停Adblock的过滤工作。其次,过滤规则仅仅是由爱好者团体共同提供的,可靠性没有保证。最后,Adblock采用的是“赶尽杀绝”的方式,要想只过滤网页中的特定广告,操作比较复杂。
·PC World将Adblock Plus列为2007最好的100个产品之一。
一些网站管理员使用JavaScript来检测是否使用一些流行的Adblock过滤器。这会生成一些类似honeypot的URL并在网页在浏览器上渲染后进行验证,更高级的会使用DOM的验证机制来检查设置的广告元素是否存在。
这些方法并不能直接检测到是否存在Adblock扩展,只能对过滤器进行检测。只是对过滤器进行,这些方法就会失效。
还有一个方法会对插件自身进行检测,但这一方法在AdBlock Plus 0.7.5.2更新后就失去作用了。