使用Adblock屏蔽反adblock屏蔽插件

浏览某些网页时,总会弹出禁用 Adblock 的全屏提示:如果不禁用 Adblock / 不将网站添加到白名单,就不允许浏览其内容。

原由

控制网页显示内容是用户的权利! 我并不反对网页内嵌广告,但我反对网站强迫用户二选一的行为。

对于有优质内容产出的站点,强制用户二选一还勉强说得过去;对于采集/机翻类型的内容农场站点,二选一让人无法接受。

这种弹窗提示不可关闭(实际其插件支持弹窗可关闭/不可关闭配置),且全屏模糊整个页面,强迫用户添加网站白名单或禁用插件,剥夺了用户自由控制显示内容的权利。

对于这种强制且不可关闭的弹窗提示,一个方法是使用 AdBlock / AdBlock Plus 屏蔽其 js 加载。

反屏蔽插件原理

大部分 WordPress 网站使用的反屏蔽插件都是 deblocker,这款插件检测原理非常简单:创建一个 0 大小且具有广告 ID 的元素插入到文档中,大多情况下, AdBlock 会直接隐藏该元素,反屏蔽插件通过实时检测元素 display 来判断是否使用了屏蔽插件。

当插件检测到假元素被屏蔽后,将会创建一个随机名称、随机 ID 、随机样式名的遮罩元素,并设置该元素的 css 以模糊整个页面。当你手动删除该元素后,其又会创建一个同样的随机遮罩,无限循环。

另外多说一句,该插件后台是提供弹窗可关闭/不可关闭的控制选项的,对于配置为弹窗可关闭的网站,用户可以手动关闭该弹窗;对于配置为弹窗不可关闭的网站,用户无法关闭弹窗,换句话说,你无法在开启屏蔽插件的情况下浏览内容。

屏蔽

本人使用Adblock Plus为例说明如何屏蔽该弹窗,对于Adblock等软件,原理相同。

首先确定反屏蔽原理。deblocker插件通过ads.jsdeblocker.js进行反屏蔽工作,其中前者内容是创建假元素,后者内容是执行检测与弹窗。

打开 Adblock Plus 设置,在自定义屏蔽列表中加入如下内容(三选一,酌情修改):

# (三选一)
deblocker/js/
# 或(三选一)
baidu.com/*/deblocker/js/
# 或 (三选一)
baidu.com/*/deblocker/js/ads.min.js
baidu.com/*/deblocker/js/deblocker.min.js

如果插件路径发生变化,则按需更新屏蔽路径即可。

其他

对于其他类型的反屏蔽软件,原理是通用的。只需要找到反屏蔽逻辑,对症下药即可。

如果某些站点将检测逻辑写入网站主 js 模块中,则可以使用油猴编写对应脚本,阻止或直接覆盖其检测逻辑。

梓喵出没博客(azimiao.com)版权所有,转载请注明链接:https://www.azimiao.com/7506.html
欢迎加入梓喵出没博客交流群:313732000

我来吐槽

*

*

0位绅士参与评论

  1. littleplus01-02 22:50 回复

    呜呜呜,兔子居然还在更新,不愧是秃子

  2. 大致01-02 18:16 回复

    这个不错。真是一层窗户纸。