FiddlerScriptプログラミング
Fiddlerscript Programming
FiddlerScriptは、Fiddlerの非常に強力な機能であり、Fiddler UIの拡張、新機能の追加、要求と応答のコンテンツの変更などを行うことができます。 。 。
1.FiddlerScriptを作成します
FiddlerScriptベース JScript.NET 言語。メニューの[ルール]> [ルールのカスタマイズ]をクリックして、FiddlerでFiddlerScriptエディターを開きます。ここでは、Fiddlerスクリプトスクリプトを記述できます。保存されると、Fiddlerはスクリプトを再コンパイルし、自動的にロードします。ロードが成功すると、サウンドがFiddlerで再生されます。ステータスバーに「CustomRules.jsがロードされました」というメッセージが表示されます。コンパイルが失敗した場合、エラーメッセージが表示されます。
FiddlerScript Editorプラグインがインストールされていない場合は、他のエディターでスクリプトを作成することもできますが、構文の強調表示とオートコンプリート、ダウンロードアドレスがあるため、FiddlerScriptEditorをお勧めします。 http://fiddler2.com/fiddlerscript-editor 。
別のエディターを使用してFiddlerScriptを作成する場合は、[ツール]> [Fiddlerオプション]で設定し、次のようにエディターとしてnotepad ++を使用できます。
スクリプトを作成するときにサードパーティの.netアセンブリを参照する必要がある場合は、次のように追加できます。
a。セミコロンで区切られた複数のアセンブリアドレスがある場合は、[参照]テキストボックスに参照するアセンブリアドレスを入力します。
b。アセンブリをGACに登録するか、Fidder.exeがインストールされているディレクトリにアセンブリをコピーすることもできます。
アセンブリを追加したら、スクリプトを作成するときに、Importステートメントを使用してアセンブリの名前空間をインポートできます。
カスタムスクリプトファイルCustomRules.jsは、ユーザーのマイドキュメントディレクトリに書き込まれます。
win7システムは次の場所にあります:C: Users [your user] Documents Fiddler2 Scripts
xpシステムは次の場所にあります:C: Documents and Settings [your user] My Documents Fiddler2 Scripts
カスタムルールを使用する必要がなくなった場合は、いくつかのファイルを削除できます。次回Fiddlerを起動すると、FiddlerScriptEditorはインストールディレクトリのSampleRules.jsを使用してファイルを再生成します。
2.FiddlerScriptのメインメソッド
FiddlerScriptファイルには、静的クラスHandlersが含まれています。一般に、コードはこのクラスの静的メソッドで作成する必要があります。
Fiddlerランタイムは、いくつかの「アプリケーションイベントメソッド」を自動的に実行します。
静的関数OnBoot | フィドラーの起動時に呼び出されます |
静的関数OnShutdown | フィドラーが閉じているときに呼び出されます |
静的関数OnAttach | フィドラーがシステムプロキシとして登録されているときに呼び出されます |
静的関数OnDetach | フィドラーがシステムプロキシの登録を解除するときに呼び出されます |
静的関数メイン | フィドラーが起動するたび、およびCustomRules.jsスクリプトがコンパイルされるたびに呼び出されます。 |
//このメソッドでリクエストの内容を変更します。
static function OnBeforeRequest(oSession: Session)
//このメソッドの応答の内容を変更します
static function OnBeforeResponse(oSession: Session)
// Fiddlerコマンドをメソッドに含めます。Fiddlerインターフェイスの左下にあるQuickExecBoxは、スクリプトが指定されたコマンドを処理する場合はtrueを返し、それ以外の場合はfalseを返します。
static function OnExecAction(sParams: String[])
3.FiddlerScriptと属性
Handlersクラスを使用すると、属性を使用して外部に公開されたフィールドまたはメソッドに注釈を付けることができます。これは、FiddlerUIインターフェイスで作成できます。
使用する BindUIColumn 属性メソッドに注釈を追加します。これは、Webセッションのリストに追加できます。
public static BindUIColumn('Method', 60) function static FillMethodColumn(oS: Session): String { return oS.RequestMethod }
スクリプトを保存している限り、フィドラーセッションリストに現在のリクエストをマークするリクエストモード列があることがわかります。
使用する クイックリンク 属性最上位のメニューを追加します。
QuickLinkMenu('&Links') QuickLinkItem('Tenpay', 'https://www.tenpay.com') QuickLinkItem('Alipay', 'https://www.alipay.com') public static function DoLinksMenu(sText: String, sAction: String) { Utilities.LaunchHyperlink(sAction) }
スクリプトを保存すると、Fiddlerの上部にメニュー項目が表示されます。メニュー項目をクリックすると、対応するWebサイトを開くことができます。
4.Fiddlerでセッションの表示スタイルを変更します
セッションがFiddlerで表示するスタイルを制御できます。具体的なドキュメントは次のとおりです。 http://www.fiddlerbook.com/Fiddler/dev/SessionFlags.asp
このスクリプトをOnBeforeRequest(oSession:Session)メソッドの下に置き、[スクリプトの保存]をクリックして、すべての www.tenpay.com 会話は赤になります。
if (oSession.HostnameIs('www.tenpay.com')){ oSession['ui-color'] = 'red' }
5.FiddlerスクリプトでCookieを変更します
Cookieは、実際にはリクエストのヘッダーです。
//すべてのCookieを削除します
oSession.oRequest.headers.Remove( 'Cookie')
//新しいCookie
oSession.oRequest.headers.Add( 'Cookie'、 'username = testnameloginpwd = 123456')
注:Fiddlerスクリプトは、単一のCookieを直接削除または編集することはできません。 Cookie文字列を操作するには、replaceメソッドまたは正規表現メソッドを使用する必要があります。
static function OnBeforeRequest(oSession: Session) { if (oSession.HostnameIs('www.example.com') && oSession.uriContains('pagewithCookie') && oSession.oRequest.headers.Contains('Cookie')) { var sCookie = oSession.oRequest['Cookie'] // Use the replace method or the regular expression method to manipulate the string of the cookie sCookie = sCookie.Replace('cookieName=', 'ignoreme=') oSession.oRequest['Cookie'] = sCookie }
6.Fiddlerスクリプトのリクエストの本文を変更します
方法1:
static function OnBeforeRequest(oSession: Session) { if(oSession.uriContains('http://www.cnblogs.com/TankXiao/')) { // Get the body string in the Request var strBody=oSession.GetRequestBodyAsString() // Use regular expressions or replace methods to modify strings strBody=strBody.replace('1111','2222') // Play a dialog box to check the modified body FiddlerObject.alert(strBody) // Rewrite the modified body back to the Request oSession.utilSetRequestBody(strBody) } }
方法2:本文のデータを直接置き換える非常に簡単な方法を提供します
oSession.utilReplaceInRequest('1111', '2222')
7.その他の参考資料
JScript.NET言語リファレンス: http://msdn.microsoft.com/en-us/library/z688wt03(VS.80).aspx
セッションのUIスタイルを制御します。 http://www.fiddlerbook.com/Fiddler/dev/SessionFlags.asp
Fiddlerスクリプトの公式ヘルプドキュメント: http://www.fiddlerbook.com/Fiddler/dev/ScriptSamples.asp
Fiddlerの要求と応答を変更します。 http://fiddler2.com/documentation/KnowledgeBase/FiddlerScript/ModifyRequestOrResponse
フィドラーブログ: http://www.telerik.com/automated-testing-tools/blog/eric-lawrence.aspx
転載: https://www.cnblogs.com/weekend001/archive/2013/12/13/3473880.html