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

 

  Ex:AntiAdコマンド
  「httpリクエストヘッダ編集」の詳細

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


 

「httpリクエストヘッダ編集」の概要


「httpリクエストヘッダ編集」は、 Private Proxy(Service部) がネット側にhttpリクエストを送信する際、 そのヘッダ部を任意に編集する機能です。

httpリクエストヘッダの例

この機能を使用するには、 Ex:AntiAdコマンドの ReqHdrEdit-addHostモード を使用してPrivate Proxyにターゲットのホストと、 Callbackマクロを登録します (解除は ReqHdrEdit-removeHostモード)。

現在の登録状況は Ex:AntiAdコマンドの ReqHdrEdit-dumpモード で参照することができます。

Ex:AntiAdコマンド httpリクエストヘッダ編集

 

登録マクロの例


次のマクロを実行した後は、Webブラウザなどから http://example.2ch.net/test/bbs.cgi などにアクセスしたとき、 httpリクエストのヘッダ部がデスクトップにダンプされ(拡張子 bin のファイル)Private Proxyは、それの編集完了待ちになります。
Private Proxyは、編集完了を検出すると、そのヘッダを使用して(それまでのヘッダと入れ替えて) ネット側に送信します。

登録マクロの例 (Ex:AntiAdコマンドのReqHdrEdit-addHostモード)

AntiAdコマンドでは host=path= でターゲットを指定します。
host= では .2ch.net を指定しているので、 raicho.2ch.net や hatsukari.2ch.net などのホストが対象になります。
またこの例では同時に path= も指定して、ターゲットを、パスが /test/bbs. で開始されるものに限定しています。 例えば、
  http://raicho.2ch.net/test/bbs.cgi
  http://hatsukari.2ch.net/test/bbs.cgi
などのURLです。
ReqHdrEdit-addHostモードでの登録は一度行えば、ReqHdrEdit-removeHostモードで解除するまで消えません (PCを再起動してもService部の起動で自動的に登録されます)。

Private Proxyは、ターゲットのアクセスを検出すると、 ネット側への送信を中断し、 ヘッダ部分をコールバックマクロと同じフォルダに バイナリファイルで保存します (拡張子 bin のファイル)。 これがヘッダダンプファイルです。
例えば、ReqHdrEdit-addHostモードで、コールバックマクロにデスクトップにある「Sample.txt」というファイルを指定した場合、 Private Proxyで生成されるヘッダダンプファイルは、 デスクトップの「Sample.1234.bin」のようなファイルになります。 このヘッダダンプファイルのフルパスは、コールバックマクロに通知されています(input[5])。

Private Proxyは、 ヘッダダンプファイルを生成すると、そのファイルの編集完了を待ちます。
バイナリファイルですが、ヘッダ部はテキストコードなので、普通のテキストエディタでも編集可能です。 想定されている使われ方は、コールバックマクロで編集するものです。

Private Proxyは、 編集完了の検出を、.bin.editファイル が生成されたかどうかで判定しています。
例えば、ヘッダダンプファイルがデスクトップの「Sample.1234.bin」のファイルだった場合、 Private Proxyは、 デスクトップに「Sample.1234.bin.edit」のファイルが生成されるのを待ち、生成を確認すると そのファイルの内容をヘッダにして処理を再会します。
(ヘッダ編集をしない場合は、ヘッダダンプファイル(.bin)を .bin.edit にリネームするだけでOKです)

例えば、手動で編集する場合、「Sample.1234.bin」のファイルをテキストエディタで編集し、そのまま保存、 最後にそのファイルを「Sample.1234.bin.edit」にリネームします。
先に.bin.editファイルを生成しないでください。その時点で編集完了と判断されてしまいます。

 

コールバックマクロの例


Callbackマクロは、Viewで起動されます。

Private Proxyは、ターゲット検出の通知を Viewに対して行った後、編集完了待ちになります。

Callbackマクロは、ReqHdrEdit-addHostモードでのパラメータ CallbackMacro= で、フルパスで指定します。
ヘッダダンプファイルは、このCallbackマクロと同じフォルダに生成されます。



上記例は、ヘッダ内にある Firefox の文字列(Firefoxを使ったときにUser-Agentヘッダに含まれる)を、 全て iPhone の文字列に変換しています。
(このマクロは、サーバがUser-Agentヘッダを解析したときにiPhoneからのアクセスと判定し、iPhone用ページを送ることを期待しています)

input[1] は ReqHdrEdit の文字列(固定)、 input[2] はCallbackマクロのフルパスです。

リモートホスト名は、input[3] で通知されます。
これにより、リモートホスト名によって処理を分岐させることもできます。

ヘッダダンプファイル(.binファイル)は、input[5] で、フルパスで通知されます。

編集した .bin.editファイル は、 Private Proxy が使用した後は不要です。
使用したかどうかの通知は行われません。上記例では.bin.editファイルの生成5秒後に ワークフォルダに移動しています。

 

httpヘッダ編集の具体例




【このサンプルの説明】
上記のマクロを、 パラメータ無しで起動したときは、ホスト名が
  youtube.com
  .youtube.com
  .ytimg.com
  .google.com
のパターンに一致するものに対して、ヘッダ編集の対象であることを登録します (これらはYouTubeにアクセスしたときにアクセスされるホストです)。

マクロ起動時、del をパラメータにすると(input[0]) 上記の登録を全て解除して終了します。

マクロ起動時、dump をパラメータにすると(input[0]) 登録状況を出力して終了します。

このマクロは Callbackマクロ も兼ねています。
Callbackで起動されるときは、2つ目のパラメータ(input[1]) が、固定的に文字列 ReqHdrEdit に設定されているので、その場合を判定して Callbackマクロ としての処理を行います。

Callbackマクロとしての処理では、ヘッダ内の文字列 Firefox , Mozilla , Windows を全て iPhone に書き換えた、 .bin.editファイル を作成しています。
よって、このマクロを登録後にYouTubeのサイトにアクセスすれば、 YouTubeのサイトからはiPhone向けデザインのページで応答されます。

※ UserAgentヘッダを入れ替えるだけなら、この「httpヘッダ編集機能」で行なうより、 UserAgent置換機能 で行なう方が便利で簡単です。 このサンプルでは「httpヘッダ編集機能」の説明のため、 UserAgentヘッダの編集を「httpヘッダ編集機能」で行なっています。

[BACK]
プロセルピナ