Privoxyのメモ

OSを入れなおしたらProxomitronのダイアログがマトモに表示されなくなった。で公式サイトに行ってみると死んでるしソースもないし、…わけのわからないパターン記述に付き合うのも飽きたのでPrivoxyを試してみる。

Privoxy http://www.privoxy.org/user-manual/index.html

導入
  • sorrceforge からWindows版をDLして解凍
  • config.txtの listen-address を設定。IFADDR_ANYの場合は :8080 等と書く。
  • Shift_JISで書かれたページの文字化けを防ぐために default.action の
     +filter{demoronizer} \  
     -filter{demoronizer} \  
    と書き換える。
  • Privoxyを起動する
  • ブラウザのプロクシ設定を変更する
  • 組み込みのWeb管理画面 http://config.privoxy.org/ にアクセスして動作確認。
  • 空のファイルuser.filterを作ってconfig.txt に
    filterfile user.filter
    を追加。
アクションファイル
アクションファイルはURLに対する行動を決める。 http://config.privoxy.org/show-url-info でURLに対する行動がどう設定されているか確認できる。

default.action standard.action user.action の3つのファイルに分かれていて、 ユーザによる変更はuser.action を編集する。

user.action はコメントを除くと

{{alias}}
{ allow-all-cookies }
{ -filter{popups} -kill-popups }
{ -filter }
{ +block }
{ +block-as-image }
{ fragile }
{ allow-ads }
{ +set-image-blocker{blank} }
という構造。

単純に拒否や信頼したいサイトを設定するには {}で分けられたセクションにパターンを追加すればいい。

URLのパターンは domain パターンとパスパターンに分かれる。 ユーザマニュアルの8.4を参照。 domainパターンはワイルドカードといくつかの省略記法(8.4.1)、 pathパターンはperl互換正規表現が使われる(8.4.2)。

pathパターンでは左端の/とパターンの^に何か特別なことがあるらしい。またデフォルトでCASE INSENSITIVEになっている。詳細はマニュアルを参照。

安全なドメインの安全でないサブドメイン
Proxomitronのリストファイルを移動しているとSafeListに
(^jump)[^/]++.(2ch.net|bbspink.com)/
(^user)[^/]++.yahoo.co.jp/
(^members)[^/]++.goo.ne.jp/
という表記があって、同じことをPrivoxyで処理したい。 パターンに頼らない解決法は、-filterより後に"Defaults" section と同じ設定のセクションを書いて、そこに安全でないドメインを書く。 ドメインパターンに否定表現を書ければスマートなんだが…。
フィルタ使用例:www.google.comのリファラ消しを外す
user.filter
FILTER: google
s|<a href=/url\?sa=U\&start=\d+\&q=(\S+)([^>]*)>|<a href="$1" $2>|
user.action
{ +filter{google} }
.google.com
.google.co.jp
不満、要望
  • IEMIMEを見ていないので、非テキストなコンテンツがテキストと判断されるかどうか調べて必要ならブラクラ対策を行いたい。
  • telnetなサービスへのアクセスを禁止したいが、ドメインパターンに *:23 と書いてもうまくいかないようだ
  • HTTPヘッダの書き換えが貧弱
  • ProxomitronにあるBounds Matchが欲しい。