「Titanium-Web-Proxy 2 (2023/11/22)」
さて、プロキシーソフト。
Titanium.Web.Proxy (以下 TWP)の解説です。
まず、このソフト。
TWPはインストールまでのハードルが相当高いと
言っておきます。
バイナリ、いわゆる「.exe」は
配布されていません。
ソースコードから自分でビルドする必要があります。
(この時点でもう相当高い)
と言うか、TWP自体はただのプロキシー。
サーバー → TWP → ブラウザ
パケットをリレーするだけで、
それ自体には何の機能もついてないので
.exeを配布しても意味ありません。^^;
自分のやりたいことを、
TWPのソースコードに書き込んで
(一例)
ルールを作成する。全部 自分でやるのデス。
サーバー → TWP → ブラウザ
パケットをリレーするだけで、
それ自体には何の機能もついてないので
.exeを配布しても意味ありません。^^;
自分のやりたいことを、
TWPのソースコードに書き込んで
(一例)
ルールを作成する。全部 自分でやるのデス。
レッツスタート!
まずはGitHubページから
ソースコード.zipをダウンロードして、
解凍して、
VisualStudioで.sinを開いて、
「Titanium.Web.Proxy.Example.Wpf」をスタートアップに設定する。
あとは・・・頑張ってコンパイルしてください。^^;
このソフトはちょっと古い。
想定しているフレームワークは .NET Framework 4.5 (2012年8月ごろ)
2023年の最新 Net 7.0とはだいぶ違うので、
古いライブラリを取り寄せてなんとか
コンパイルを通す必要があります。
・・・
・・
・
さて、コンパイルは通せましたか?
(あくまで、私の環境での一例。改造しまくったのでソフトウェア名とかも変えてます。)
通せたら、いよいよ。
フィルタリング機能を
自分で作成しに入ります。
端的に言って、
TWPのソースコードのどこをいじればいいかと言うと、
重要なのは以下の二行。
A.
ここで 「プロキシーサーバーは、レスポンスの前にフックを入れる」 と宣言している。
B.
そしてこっちがフックの関数。
このSessionEventArgs eが、
Httpのヘッダー&ボディーを持っているので。
それらを
var body = await e.GetResponseBodyAsString();
body = 改変(body);
e.SetResponseBodyString(body);
body = 改変(body);
e.SetResponseBodyString(body);
のように、eのボディーを取得して、改変して、入れ替える。
そうすれば改変されたコンテンツが
プロキシーから出てくるようになります。
次回に続く。
具体的な、一部のサイト用の
フィルター記述などを紹介します。