作者danny0838 (道可道非常道)
看板Browsers
标题Re: [问题] AdGuard的过滤规则能套用ublacklist吗?
时间Tue Jan 9 22:41:38 2024
※ 引述《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),
接着把它们通通加入规则,以後就可以在搜寻结果页面标示了。
--
《终结内容农场》浏览器套件 https://bit.ly/CFTINFO
适用 Chrome 系及 Firefox 系桌面浏览器
适用 Android 手机浏览器 (Kiwi Browser, Firefox for Android 等)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.115.6.171 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Browsers/M.1704811301.A.8B2.html
※ 编辑: danny0838 (59.115.6.171 台湾), 01/09/2024 23:13:21
1F:推 smallreader: 推深入说明01/10 01:17
2F:嘘 brli7848: 红明显 最简单就是直接封百度网域01/10 11:09
不喜欢你可以自己封锁。
但是就开发者的立场,支援百度可以吸引对岸网友使用,
使用者多就会有更多人协助回报垃圾网站,这样对大家都有利。
※ 编辑: danny0838 (111.81.52.89 台湾), 01/10/2024 12:27:59
※ 编辑: danny0838 (111.81.52.89 台湾), 01/10/2024 12:29:00