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