Re: [问题] AdGuard的过滤规则能套用ublacklist吗?

楼主: danny0838 (道可道非常道)   2024-01-09 22:41:38
※ 引述《a0193143 (“ ”)》之铭言:
: 原文吃光
: 前阵子在研究,刚好有看到uBlacklist一些人做的订阅清单用的规则但一直忘记回
: 这是Adguard的规则
: /^https?:\/\/[0-9a-z]*\.?[-0-9a-z]{4,}\.[a-z]{2,11}\/(?:[0-9a-z]{6,8}\/)?\/?
(?:article\d{4}\.doc)?\?[ou]=[0-9a-z]{7}&[ou]=[0-9a-z]{7}/$document,match-case
: 这是“标准内容农场清单”的规则,可以看到是写成两条而已
: /^https?:\/\/[0-9a-z]*\.?[-0-9a-z]{4,}\.[a-z]{2,11}\/(?:[0-9a-z]{6,8}\/)?\/?
(?:article\d{4}\.doc)?\?u=[0-9a-z]{7}&o=[0-9a-z]{7}/
: /^https?:\/\/[0-9a-z]*\.?[-0-9a-z]{4,}\.[a-z]{2,11}\/(?:[0-9a-z]{6,8}\/)?\/?
(?:article\d{4}\.doc)?\?o=[0-9a-z]{7}&u=[0-9a-z]{7}/
: 是可以套的,而且有人写
: 问题是懂RegEx的话就知道这挡不了那些随机网址的
: 从网址列可以看到Adguard是挡转址后的(muellfrei开头)
: https://i.imgur.com/07aszWq.png
: uBlock Origin更清楚
: https://i.imgur.com/j8nHdPP.png
: 然后我们可以把Adguard的规则拿去测试原Po的那些网址
: https://i.imgur.com/iad3kku.png
: 可以看到这个规则对于本来的一点反应都没有,都是发生在转址后的
: 本来的推文有人提到说uBlacklist会自行计算转址
我之前的说法有一点语病。
许多搜寻引擎在列出搜寻结果时,不是列出原始网址,而是列出特殊的转址,
假设某笔搜寻结果网址是:
(a) https://example.com/
在 Google 搜寻结果列出来的网址可能是这样:
(a') https://www.google.com/url?q=https://example.com/&...
而 uBlcklist 在处理支援的搜寻引擎时,会自动处理 (a')=>(a),
因此使用者只要提供过滤 (a) 的规则,就能过滤此网页。
麻烦的来了,有些垃圾网站会加上多重转址,
比如进入 (a) https://example.com 以后会转址到 (b) https://wtf.com,
进入 (b) 以后再转址到 (c) https://xyz.com 再转址到 (d) https://kkk.com
如果是 AdBlock 或 uBlockOrigin,只要填写过滤最终页面 (d) 的规则,
就会在最后进入 (d) 的那一刻阻挡并显示封锁画面。
但是 uBlacklist 没办法,因为它只认得 (a') 和解析出来的 (a),
所以提供过滤 (d) 的规则没有用,必须提供过滤 (a) 的规则才行。
: 但根据之前这个issue,有人问说能不能挡转址去百度的网站
: 原作者的回复是:不是不可能,但是会加重使用者装置和(百度)服务器的负担,他不
喜欢
: https://github.com/iorate/ublacklist/issues/56#issuecomment-753482482
: 而我实际测试了那些网址,一样是挡不了的,所以至少就目前而言要在搜寻结果用uBla
cklist直接滤掉还是没办法
百度的问题和这个不一样,
因为像 Google 的转址 (a') 本身参数中就含有原来的网址 (a),
因此可以从 (a') 计算出 (a) 并加以处理,
但百度的做法类似缩网址,它的 (a') 是像这样:
http://www.baidu.com/link?url=5doWjQO9Xrz...
并不含有 (a) 的资讯,因此无法解析出原来的 (a),
除非另外在背景发出请求造访该连结,
比如搜寻结果如果有50个连结,套件就在背景发出50个网络请求,
然后根据解析出来的网址做黑名单处理,
这会影响浏览器和百度服务器的效能,
而且会有延迟(可能搜寻结果出来好几秒后才开始套黑名单隐藏项目),
因此作者才说不愿意这样做。
但即使百度的问题可以这样做,也不管效能问题,
还是不能套用在前面说的(a')转(a)转(b)转(c)转(d)这类的问题上,
因为背景造访和实际造访还是有一些差异,
导致背景造访无法可靠地根据(a')分析出最终转址为(d)。
作者在该页面还说明有其他方法可以取得部分目标网站的资料,
但并不是完全可靠,只能作为辅助。
终结内容农场的做法,是结合了 Adblock/uBO 在进入最终网址时封锁,
以及 uBlacklist 为最初网址加上标示,
并且也使用了作者文中提到取得部分资料的方式,因此可以标示百度搜寻结果,
但也是只能作为辅助,有些比较复杂的还是无法标记到(但进入时还是能封锁)。
只要提供 (a) (b) (c) (d) 所有转址清单,终结内容农场就能处理,
如果只提供一部分,那就只能处理一部分。
终结内容农场还有内建简单的追踪器,只要把 (d) 加入封锁规则,
从搜寻结果的 (a) 进入而转址到 (d) 被封锁时,
可以进入设定页面点击 [重导向自] 的连结,
就可以找到前面转址过程的 (a) (b) (c),
接着把它们通通加入规则,以后就可以在搜寻结果页面标示了。
作者: smallreader (小读者)   2024-01-10 01:17:00
推深入说明
作者: brli7848 (无理阿?)   2024-01-10 11:09:00
红明显 最简单就是直接封百度网域

Links booklink

Contact Us: admin [ a t ] ucptt.com