プロセルピナ
Top Internet
Mail
Private
Proxy
Capture
Device
Download Config
and
Words
Online
Help
Online
Home
[BACK]
Top > FileDownload > Macro > Ex: Command > AntiAd > Active Local Redirection

 

  Ex:AntiAdコマンド
  アクティヴ・ローカルリダイレクション (Active Local Redirection)

Macro Top | Variables | Constants | Commands | Ex-Commands  


 

【はじめに】 「HTTP ローカルリダイレクション」とは


「アクティヴ・ローカルリダイレクション」は、 「HTTP ローカルリダイレクション」の一種です。
「HTTP ローカルリダイレクション」は、 クライアント(Webブラウザなど)からの Httpリクエストを ローカルファイルにリダイレクト(振り替え)する機能です。

HTTP ローカルリダイレクション
 

書式 (登録と削除)


  Ex:AntiAd: (Parameters)  

Parameters
mode= : string, コマンドモード
  Redir-Reg : HTTP ローカルリダイレクションの登録
  Redir-Del : HTTP ローカルリダイレクションの登録を解除

dir= : string, 文字列 static を固定的に指定。
targetHost= : string, HTTPローカルリダイレクションのターゲットホスト (書式)
CallbackMacro= : string, 関連付けるCallbackマクロ
O:result= : var-string, コマンド実行結果 (Optional)
O:waitId= : var-string, Ex:InputForm.Waitコマンドで指定する応答待ちID
SubInfo= : string, Callbackマクロに渡すユーザー情報

ここでは、アクティヴ・ローカルリダイレクション情報の 登録(Redir-Reg) と 削除(Redir-Del) について記述しています。 HTTP ローカルリダイレクションの開始については Redir-ONモード を、 HTTP ローカルリダイレクションの停止については Redir-OFFモード を参照してください。

プライベートプロキシに対し、 Redir-RegモードでCallbackマクロを登録し、 Redir-ONモードで機能を有効にすると、 それ以降のHTTPリクエストで HTTPローカルリダイレクション の対象かどうかのチェックが開始されます。
既にローカルリダイレクションが有効だった場合は Redir-Regモードで登録した時点で開始されます。

Redir-OFFモードで無効を指定すると、 HTTPローカルリダイレクションは停止されますが、 Redir-Regモードで登録した内容は保持されるので(※消すこともできます)、再び Redir-ONモードで機能オンを通知すると、 以前の登録情報でHTTPローカルリダイレクションが再開されます。

 

アクティヴ・ローカルリダイレクションの登録


アクティヴ・ローカルリダイレクションの登録には、 mode=dir=targetHost=CallbackMacro=SubInfo=O:result=O:waitId= の6つのパラメータを指定します。
(SubInfo= はオプション)

mode= には Redir-Reg の文字列を指定します。

dir= には ヘッダ情報を格納するフォルダ をフルパスで指定します。

targetHost= には、アクティヴ・ローカルリダイレクションの対象とするホストを指定します。書式は targetHost= の指定 を参照してください。

CallbackMacro= には、Callbackマクロを指定します。
ローカルリダイレクションを行うかどうかの判定、 ローカルリダイレクトする場合のクライアント側に応答する内容は、このCallbackマクロで決定します。

O:result= には、コマンド処理結果を設定する文字列変数を指定します。処理結果は OK: または NG: の3文字で開始される文字列で設定されます。
オプションですが、できるだけ指定し、結果を判定するようにします。

O:waitId= には Ex:InputForm.WaitコマンドwaitId= に指定する応答待ちIDが設定されます。

Ex:AntiAd: mode="Redir-Reg"の使用例

上記は Ex:AntiAdコマンドのRedir-Regモード で、 .example.com のパターンに一致するホストに対して アクティヴ・ローカルリダイレクションを登録する例です。
パターンに一致しないホストには全く影響がありませんが、 一致するホストにアクセスがある場合(例えば www.example.com)、 プライベートプロキシはViewに ローカルリダイレクションを通知し、応答を待ちます。
この例では リダイレクトの最終的な判定はView部で起動された cbm_Sample.txt のCallbackマクロで行われます。
Callbackマクロは、 ローカルリダイレクションを行うかどうか、 ローカルリダイレクトする場合は クライアント側に応答する内容を ファイルのフルパスの形で プライベートプロキシに応答します。

 

Callbackマクロの詳細


Callbackマクロには8つのパラメータが渡されます。

input[0] : 文字列 @hostName (固定)
input[1] : 文字列 REDIR (固定)
input[2] : Callbackマクロのフルパス
input[3] : リモートホスト
input[4] : HTTPリクエストのヘッダを格納したファイル(フルパス)
input[5] : Redir-ID (応答用識別子)
input[6] : SubInfo (文字列)
input[7] : URLパス部

CallbackMacroは、Redir-Repモード で、プライベートプロキシに応答を返さなければなりません。
応答では応答用識別子を Redir-ID= に設定しますが、これは input[5] の内容をそのまま指定します。



Redir-Repモード では、 リダイレクトする場合は、RedirFile= にクライアント側に送信する内容を記述したファイルをフルパスで指定します。
リダイレクトしない場合は、RedirFile=NO の2文字を指定します。

リダイレクトするかどうかの判定は、 input[3]のリモートホスト名、 input[4]のクライアント側が送ったHTTPヘッダ情報、 input[6]のSubInfo、 input[7]のURLパス部 などを参考にしてCallbackマクロの処理で行います。
次の例では、URLに /XXX.jpg が含まれているときに デスクトップの ZZZ.jpg を応答します。



リダイレクトすると決定した場合は、 クライアント側に送信すべき内容をファイルに作成して(または既存ファイルから選択して)、 それを Redir-Repモードの RedirFile= に指定します。
このファイルに含まれる内容が、クライアント側に送られるデータの全てです。 よって、ファイル先頭には HTTPヘッダが含まれていなければなりません。
例えば、Jpegファイルなら、最低でも次の2行と、それに続く空行の3行が、 実際のjpeg画像データの前に必要です。

  HTTP/1.1 200 OK
  Content-Type: image/jpg

(※ Content-Length:ヘッダを加える必要があることもあります)

HTTPヘッダを含んだ形でデータを準備する手間が必要ですが、 これにより、 クライアント側での処理で必要になってくるヘッダを、含ませておくことができるようになります。
例えばHttp-Cookieの値などです。
また、404 Not Found で応答を用意することも可能です。

 

アクティヴ・ローカルリダイレクションの削除


アクティヴ・ローカルリダイレクションの登録削除には、 mode=targetHost=O:result=O:waitId= の4つのパラメータを指定します。

mode= には Redir-Del の文字列を指定します。

targetHost= には、
Redir-RegモードのtargetHost=で指定したものを指定します。

O:result= には、コマンド処理結果を設定する文字列変数を指定します。処理結果は OK: または NG: の3文字で開始される文字列で設定されます。
オプションですが、できるだけ指定し、結果を判定するようにします。

O:waitId= には Ex:InputForm.WaitコマンドwaitId= に指定する応答待ちIDが設定されます。

 

具体的なサンプル


macroフォルダに、具体的なサンプル firefoxPersonasRedirect.txt があります。
このマクロは、 firefoxのテーマ(スキン)を、アクティヴ・ローカルリダイレクションで デスクトップの画像で設定する例です。

このマクロの実行には マクロファイルを指定して実行 から行うのが便利です。
パラメータは reg の3文字を指定します(input[0])。

(macroフォルダから 『プロセルピナ』Viewへの ドラッグ&ドロップによる起動ではパラメータを指定できないので、このマクロでは使用できません)

マクロが正常に終了したら、
  http://www.getpersonas.com/ja/persona/56392/
にアクセスし、「このPersonaを適用」をクリックします。
登録されたアクティヴ・ローカルリダイレクションにより、URLのホスト部が
  getpersonas-cdn.mozilla.net
で開始されるときはViewに通知され、プライベートプロキシは View部からの応答待ちになります。

通知を受けたViewはCallbackマクロを起動します。
Callbackマクロは、 firefoxPersonasRedirect.txt と同じフォルダにある cbm_firefoxPersonasRedirect.txt が指定されています。
このCallbackマクロの動作は次の3つです。

URLに /PRH.jpg? の文字列が含まれるときは、デスクトップの PRH.jpg から クライアント側応答用ファイルをワークフォルダに作成して プライベートプロキシに応答します。 (PRH.jpgが無いときはダミーを作成します)

URLに /PRFF.jpg? の文字列が含まれるときは、デスクトップの PRFF.jpg から クライアント側応答用ファイルをワークフォルダに作成して プライベートプロキシに応答します。 (PRFF.jpgが無いときはダミーを作成します)

上記以外のURLでは リダイレクト無し(RedirFile="NO") を応答します。

一度設定されたfirefoxのテーマを設定しなおすには、
必要に応じて PRH.jpg と PRFF.jpg を編集し、
firefoxに一度、他のテーマを設定して、
設定しなおしたいテーマを削除し、
firefoxのブラウザキャッシュをクリアしてから、
再度、
  http://www.getpersonas.com/ja/persona/56392/
にアクセスして「このPersonaを適用」をクリックしてください。

firefoxへのテーマ設定が完了すると、ローカルリダイレクションは不要になるので、マクロ firefoxPersonasRedirect.txt をパラメータ del の3文字を指定(input[0]) して実行し、 ローカルリダイレクションを停止&削除します。
このマクロの実行も マクロファイルを指定して実行 から行います。

マクロ firefoxPersonasRedirect.txt (概要)


Callbackマクロ cbm_firefoxPersonasRedirect.txt (概要)


[BACK]
プロセルピナ