Privoxy カスタムフィルタ追加
長くなり過ぎるので、前月以前の更新履歴は削除してます
Privoxy + Tor 使ってます?
自分の個人情報は自分で防御する時代です
一度漏洩してしまったら回収するのは不可能なんですから...orz
本日は Privoxy でカスタムフィルタを作成したので簡単に紹介
カスタムフィルタいろいろ
- フィルタ型プロキシのPrivoxy。Link Killer 以外にいろいろ書いてみた
- 正規表現ばかりなので簡単な解説も付けときました(ドット文字をエスケープするの忘れずに...)
- 使い方は user.filter に追記して user.action で呼び出すようにするだけです(詳しくはこちら)
- インデントしてる行に条件を追加して設定します
- インデントいている行の行末に注目。¥ は改行をエスケープ。その前にある ¦ は条件を複数指定するための or を意味する
2008-10-12 追加
リンクのテキストを指定して消す:link-killer2
更新日 | 更新内容 |
---|---|
2009-01-01 Update | デリミタとして '\b' を追加した |
2009-01-12 Update | '\b' はアンダーバーを単語の一部だと見なすため、単語境界の条件としてアンダーバーを手動追加した |
2009-01-13 update | \b を使ったのはまずかった。URLエンコードで意図しない %ads とかに一致してしました...orz ●(?:_¦\b) ⇒ (?: _ ¦ - ¦ / ) |
2009-01-23 update | デリミタ(区切り文字)にシングルとダブルのコーテーション(' と ")を追加した ● (?:_ ¦ - ¦ /) ⇒ (?:_ ¦ - ¦ / ¦ " ¦ ') |
2009-04-02 update | デリミタ(区切り文字)にスペース相当とドット(¥s と ¥.)を追加した ● (?:_ ¦ - ¦ /) ⇒ (?:_ ¦ - ¦ / ¦ " ¦ ' ¦ ¥s ¦ ¥. ) |
2009-04-02 update | OR 条件を改行して羅列した場合、最後だけ ¦ を省く必要があるが忘れやすい。このミスを避けるため最後にダミー条件を設定した ● ____ending____condition____dammy____ ¥ |
################################################################################ # # link-killer2: Remove annoying anchor tags by text node # ################################################################################# FILTER: link-killer2 Remove annoying anchor tags by text node s@ <a[^>]+>[^<]*(?: \ (?:_|-|/|"|'|\s|\.)pr(?:_|-|/|"|'|\s|\.) | \ (?:_|-|/|"|'|\s|\.)ads?(?:_|-|/|"|'|\s|\.) | \ ____ending____condition____dammy____ \ )[^<]*</a[^>]*> \ @ \ @igsUx
- リンクのアンカー(a)タグに含まれるテキストを指定して削除します
- 上の例では [PR] のようなテキストが含まれるリンクを削除
広告やアクセス解析スクリプトを属性で指定して消す:script-killer
更新日 | 更新内容 |
---|---|
2009-01-01 Update | デリミタとして '\b' を追加した |
2009-01-12 Update | '\b' はアンダーバーを単語の一部だと見なすため、単語境界の条件としてアンダーバーを手動追加した |
2009-01-13 update | \b を使ったのはまずかった。URLエンコードで意図しない %ads とかに一致してしました...orz ●(?:_¦\b) ⇒ (?: _ ¦ - ¦ / ) |
2009-01-23 update | デリミタ(区切り文字)にシングルとダブルのコーテーション(' と ")を追加した ● (?:_ ¦ - ¦ /) ⇒ (?:_ ¦ - ¦ / ¦ " ¦ ') |
2009-04-02 update | デリミタ(区切り文字)にスペース相当とドット(¥s と ¥.)を追加した ● (?:_ ¦ - ¦ /) ⇒ (?:_ ¦ - ¦ / ¦ " ¦ ' ¦ ¥s ¦ ¥. ) |
2009-04-02 update | OR 条件を改行して羅列した場合、最後だけ ¦ を省く必要があるが忘れやすい。このミスを避けるため最後にダミー条件を設定した ● ____ending____condition____dammy____ ¥ |
################################################################################ # # script-killer: Remove annoying script tags by attributes like src # (Recursive script tag is NOT supported) # ################################################################################# FILTER: script-killer Remove annoying script tags by attributes like src s@<script[^>]+(?: \ (?:_|-|/|"|'|\s|\.)pr(?:_|-|/|"|'|\s|\.) | \ (?:_|-|/|"|'|\s|\.)ads?(?:_|-|/|"|'|\s|\.) | \ \.googlesyndication\.com/(?:[^/]+/)*(?:pagead/)?show_ads\.js | \ rank.*\.js | \ (?:_|-|/|"|'|\s|\.)ad\.js | \ \baz\.trackword\.net/ | \ ____ending____condition____dammy____ \ )[^>]*(?:>.*</script[^>]*>|/>) \ @ \ @igsUx
指定したインラインフレームを属性で指定して消す:iframe-killer
更新日 | 更新内容 |
---|---|
2009-01-01 Update | デリミタとして '\b' を追加した |
2009-01-12 Update | '\b' はアンダーバーを単語の一部だと見なすため、単語境界の条件としてアンダーバーを手動追加した |
2009-01-13 update | \b を使ったのはまずかった。URLエンコードで意図しない %ads とかに一致してしました...orz ●(?:_¦\b) ⇒ (?: _ ¦ - ¦ / ) |
2009-01-23 update | デリミタ(区切り文字)にシングルとダブルのコーテーション(' と ")を追加した ● (?:_ ¦ - ¦ /) ⇒ (?:_ ¦ - ¦ / ¦ " ¦ ') |
2009-04-02 update | デリミタ(区切り文字)にスペース相当とドット(¥s と ¥.)を追加した ● (?:_ ¦ - ¦ /) ⇒ (?:_ ¦ - ¦ / ¦ " ¦ ' ¦ ¥s ¦ ¥. ) |
2009-04-02 update | OR 条件を改行して羅列した場合、最後だけ ¦ を省く必要があるが忘れやすい。このミスを避けるため最後にダミー条件を設定した ● ____ending____condition____dammy____ ¥ |
################################################################################ # # iframe-killer: Remove iframe tags by attributes like src # (Recursive iframe tag is NOT supported) # ################################################################################# FILTER: iframe-killer Remove all iframe tags s@<iframe[^>]+(?: \ (?:_|-|/|"|'|\s|\.)pr(?:_|-|/|"|'|\s|\.) | \ (?:_|-|/|"|'|\s|\.)ads?(?:_|-|/|"|'|\s|\.) | \ ____ending____condition____dammy____ \ )[^>]*(?:>.*</iframe[^>]*>|/>) \ @ \ @igsUx
- インラインフレームを削除します
- src 属性等の URL (の一部)で削除対象を指定
- 滅多にありませんが、iframe タグの中に他のタグが含まれるようなケースでは使えません
属性で指定したdivを消す:div-killer
更新日 | 更新内容 |
---|---|
2009-01-01 Update | デリミタとして '\b' を追加した |
2009-01-12 Update | '\b' はアンダーバーを単語の一部だと見なすため、単語境界の条件としてアンダーバーを手動追加した |
2009-01-13 update | \b を使ったのはまずかった。URLエンコードで意図しない %ads とかに一致してしました...orz ●(?:_¦\b) ⇒ (?: _ ¦ - ¦ / ) |
2009-01-23 update | デリミタ(区切り文字)にシングルとダブルのコーテーション(' と ")を追加した ● (?:_ ¦ - ¦ /) ⇒ (?:_ ¦ - ¦ / ¦ " ¦ ') |
2009-01-23 update | overture を追加した |
2009-03-22 update | ブロック対象の div が <div></div>のようにテキストノードさえ持たない場合、</div> の更に次の </div> まで div 要素を削除してしまう誤動作を修正 ● )[^>]*>.+]*> \ ⇒ )[^>]*>.*]*> \ |
2009-04-02 update | デリミタ(区切り文字)にスペース相当とドット(¥s と ¥.)を追加した ● (?:_ ¦ - ¦ /) ⇒ (?:_ ¦ - ¦ / ¦ " ¦ ' ¦ ¥s ¦ ¥. ) |
2009-04-02 update | OR 条件を改行して羅列した場合、最後だけ ¦ を省く必要があるが忘れやすい。このミスを避けるため最後にダミー条件を設定した ● ____ending____condition____dammy____ ¥ |
################################################################################ # # div-killer: Remove annoying div tags by attributes # (Recursive div tag is NOT supported) # ################################################################################# FILTER: div-killer Remove annoying div tags by attributes s@<div[^>]*(?: \ (?:_|-|/|"|'|\s|\.)pr(?:_|-|/|"|'|\s|\.) | \ (?:_|-|/|"|'|\s|\.)ads?(?:_|-|/|"|'|\s|\.) | \ \sclass="adsbygoogle" | \ \sclass="antenapr1" | \ \sclass="AMN-large-banner" | \ \sclass="b-rtxt" | \ \sclass="box_ct" | \ \sclass="ji" | \ \sclass="overture | \ \sid="mainPrBanner" | \ \sid="rrec" | \ \sid="ttl-techtarget" | \ \sstyle="text-align:center;font-size:13px;" | \ ____ending____condition____dammy____ \ )[^>]*>.*</div[^>]*> \ @ \ @igsUx
- div タグを削除
- 対象は div タグの属性で指定する
- div タグの中に更にタグが含まれるようなケース(入れ子)では使えません
Adblock Plus や Remove It Permanently(RIP) で消せない広告を消す
2008-10-24 項目追加
最近では(Adblock や RIP の広告ブロックを警戒してるのか)属性がまったくついていないページもよく見かけますが、ここで諦めずに Privoxy の強みを生かして消していくカスタムフィルタを追加します
更新日 | 更新内容 |
---|---|
2009-01-01 Update | デリミタとして '\b' を追加した |
2009-01-12 Update | '\b' はアンダーバーを単語の一部だと見なすため、単語境界の条件としてアンダーバーを手動追加した |
2009-01-13 update | \b を使ったのはまずかった。URLエンコードで意図しない %ads とかに一致してしました...orz ●(?:_¦\b) ⇒ (?: _ ¦ - ¦ / ) |
2009-01-23 update | デリミタ(区切り文字)にシングルとダブルのコーテーション(' と ")を追加した ● (?:_ ¦ - ¦ /) ⇒ (?:_ ¦ - ¦ / ¦ " ¦ ') |
2009-03-09 update | ● コメント開始語に 'begins?' を追加 ● デリミタに半角スペース '\s' を追加 ● デリミタの繰り返し '+' を追加 |
2009-04-02 update | デリミタ(区切り文字)にスペース相当とドット(¥s と ¥.)を追加した ● (?:_ ¦ - ¦ /) ⇒ (?:_ ¦ - ¦ / ¦ " ¦ ' ¦ ¥s ¦ ¥. ) |
2009-04-02 update | OR 条件を改行して羅列した場合、最後だけ ¦ を省く必要があるが忘れやすい。このミスを避けるため最後にダミー条件を設定した ● ____ending____condition____dammy____ ¥ |
- 見にくいのでコピペしてテキストエディタ等で見てください
################################################################################ # # html-comment-killer: Remove HTML comments by text in the tags # ################################################################################ FILTER: html-comment-killer Remove HTML comments by text in the tags s@<!--[^\-]*(?: \ (?:_|-|/|"|'|\s|\.)+(?:begins?|starts?)(?:_|-|/|"|'|\s|\.)+pr(?:_|-|/|"|'|\s|\.)+ | \ (?:_|-|/|"|'|\s|\.)+pr(?:_|-|/|"|'|\s|\.)+(?:begins?|starts?)(?:_|-|/|"|'|\s|\.)+ | \ (?:_|-|/|"|'|\s|\.)+(?:begins?|starts?)(?:_|-|/|"|'|\s|\.)+ads?(?:_|-|/|"|'|\s|\.)+ | \ (?:_|-|/|"|'|\s|\.)+ads?(?:_|-|/|"|'|\s|\.)+(?:begins?|starts?)(?:_|-|/|"|'|\s|\.)+ | \ -AD | \ ____ending____condition____dammy____ \ )[^\-]*-->.+ \ <!--[^\-]*(?: \ (?:_|-|/|"|'|\s|\.)+ends?(?:_|-|/|"|'|\s|\.)+pr(?:_|-|/|"|'|\s|\.)+ | \ (?:_|-|/|"|'|\s|\.)+pr(?:_|-|/|"|'|\s|\.)+ends?(?:_|-|/|"|'|\s|\.)+ | \ (?:_|-|/|"|'|\s|\.)+ends?(?:_|-|/|"|'|\s|\.)+ads?(?:_|-|/|"|'|\s|\.)+ | \ (?:_|-|/|"|'|\s|\.)+ads?(?:_|-|/|"|'|\s|\.)+ends?(?:_|-|/|"|'|\s|\.)+ | \ -/AD | \ ____ending____condition____dammy____ \ )[^\-]*--> \ @ \ @igsUx
- 商業サイトには管理のためにHTMLコメントで広告タグを挟んであるケースが多い
- 例えば、<!-- ad_start --> で始まり、<!-- ad_end --> で終わるようなケース
- このHTMLコメントを丸ごと消します
入れ子になった div タグを消す
汎用フィルタにするの面倒だったんで個別対応...orz
################################################################################ # # custom-div-killer1: Remove specific div tags # ################################################################################# FILTER: custom-div-killer1 Remove annoying div tags s@ <div[^>]+ \ class="parts\d{2}" \ [^>]*>(?:.*</div[^>]*>){3} \ @ \ @igsUx
- class属性が"parts01"のようなdivを消す(この例では数字は2桁とした)
- いくつdivが入れ子になっているかを数え(=divを閉じた回数)、その数を指定(上の例では{3})
説明わかりにくくてすんません...orz