-
Notifications
You must be signed in to change notification settings - Fork 40
动态过滤快速指南
下图显示的是动态过滤面板(只针对高级用户开启):
静态过滤 是指存在于过滤规则列表中的过滤规则,例如使用 EasyList、EasyPrivacy、hpHosts 等等。动态过滤 则是好比防火墙规则那样的过滤规则。
第一列是动态过滤的对象:
如你所见,你可以按照对象类型或主机名的源地址创建动态过滤规则。
每个条目的颜色可以用来判断所有请求是被屏蔽(红色),被允许(绿色),还是部分屏蔽部分允许(黄色)。
加粗的是域名,域名可以看作是主机名,但主机名不能看成是域名,因为 uBlock 所认可的域名必须来自 Mozilla Public Suffix 列表。
第二列是**全局** 的动态过滤规则,所有在这列出现的过滤规则在_任何_ 网站的任何位置均可生效:
第三列是**本地** 的动态过滤规则,所有在这列出现的过滤规则只在_当前_ 网站生效:
第三列的单元格总体显示有多少请求被屏蔽或允许:
-
-
or+
:分别有 1-9 条网络请求被屏蔽或允许 -
--
or++
:分别有 10-99 条网络请求被屏蔽或允许 -
---
or+++
:分别有 100 或更多网络请求被屏蔽或允许 - 空白单元格:该主机名没有任何网络请求被屏蔽或允许
所以动态过滤规则既有全局的规则,也有本地的规则。
出于对安全性和隐私的保护,默认所有网页的第三方帧框架都被屏蔽:
动态过滤 会覆盖_静态过滤_,也就是说一条 block 动态规则会覆盖任何现有的 allow 静态规则。这表示你可以用动态过滤规则达到 100% 的屏蔽目的(适用于恢复被某些静态规则破坏的页面)。
[uBlock 的网络过滤引擎概览](https://github.com/fang5566/uBlock/wiki/uBlock 的网络过滤引擎概览)这篇文章有助于你理解静态过滤和动态过滤是如何交互运作的。
很好,所有嵌入页面的第三方帧框架都被屏蔽了。不过似乎这个网页有一个 Youtube 视频嵌入:
如果你想默认屏蔽某个网站的所有第三方帧框架,但不屏蔽内嵌的 Youtube 视频,有两个办法:
为第三方帧框架创建一条本地 noop 规则:
正常了,现在内嵌的 Youtube 视频显示出来了。
但上面的规则会导致该站点的所有第三方帧框架都被允许,这可不太好。
为 youtube.com
创建一条本地 noop 规则:
这会阻止动态过滤规则对 youtube.com
的一切生效,但只适用于该站点。
请记住 noop 规则只会忽略范围更广的动态过滤规则,静态过滤规则仍完全保持不变,意味着你在内嵌的 Youtube 视频里不会看到广告。
如果你想默认屏蔽所有网站的第三方帧框架,但不屏蔽任何网站内嵌的 Youtube 视频,那又该怎么办?
只要为 youtube.com
创建一条全局 noop 规则就可以了:
上图表示所有动态过滤规则默认不会在 youtube.com
任何地方生效。
本地 动态过滤规则会覆盖_全局_ 规则。
换句话说:**更专用的动态过滤规则会覆盖次专用的规则。**例如,youtube.com
的动态过滤规则(专用)会覆盖第三方帧框架
的动态过滤规则(通用) 。
我们已经谈过了_block_ 和 noop 这两种动态过滤规则,那 allow 规则呢?
allow 规则最适合用来恢复某些被静态过滤规则破坏的页面。
有些人遇到过 Boldchat 的页面被 uBlock 给破坏了:
从动态过滤面板显示的内容我们很容易看出应该在哪里有一条静态过滤规则屏蔽了到 boldchat.com
的网络请求。最后我们发现在 "Peter Lowe's Ad Server" 列表里有一条 boldchat.com
静态规则。
接着可以使用一条本地 allow 规则来修复破损的页面:
对用户来说,鼠标指向并点击一下就可以解决问题,明显比手动创建一条 @@||boldchat.com$~third-party
这样的例外静态规则更方便,后者还会强制重新载入所有静态规则(引起内存波动)。
另一个恢复被破坏页面的例子。
通常情况下请使用更精确的 allow 动态过滤规则来恢复被破坏的页面,因为这些 allow 规则会覆盖所有静态规则,意味着如果你使用了宽泛的 allow 规则, 广告、跟踪者和其他干扰可能又会冒出来。
更多内容参见:将隐私掌控在你手中(等我稍微休息一下再把文章搬过来)
uBlock Origin - 一款支持 Chromium、Firefox 和 Safari 的高效过滤工具,快速且简洁