16
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

Fiddlerを使って任意のJavaScriptを実行する方法

  • インターネット上のサイト等,様々なWebサイトにJavaScriptを埋める方法.テストとか,お遊び向け.
  • Fiddlerを使えばWebページのレスポンスにいろいろできるけど,書き換えるには設定ファイルに手を加える必要がある模様.
  • FiddlerScriptと呼ばれるものをを使えばいいっぽい.
  • FiddlerScriptは,JavaScriptに似た,JScriptという言語らしい.

編集方法

  • Fiddlerにて,メニューバー「Rules」→「Customize Rules..」を選択
  • メモ帳で対象ファイルが開く.
  • ファイルのありかは,C:\Users\ユーザ名\Documents\Fiddler2\Scripts\CustomRules.js
  • エディタの変更は,メニューバー「Tools」→「Fiddler Options」→「Tools」
  • 専用のFiddler2 ScriptEditorもある.補完が効くのでいいかも.

編集例

  • OnBeforeResponseメソッドを編集する.(レスポンスを返す直前のコールバックメソッド)
  • その他,Request,Responseの各タイミングでコールバックがある模様(参考URL参照)
  • 以下の通り書くと,bodyタグが閉じる前に,URLで示すJavaScriptを挿入可能
static function OnBeforeResponse(oSession: Session) {
    if (m_Hide304s && oSession.responseCode == 304) {
        oSession["ui-hide"] = "true";
    }

    // ここから↓を編集
    if (oSession.oResponse.headers.ExistsAndContains("Content-Type", "html")) {
        var oBody = oSession.GetResponseBodyAsString();
        // Remove any compression or chunking
        oSession.utilDecodeResponse();
        var oBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);

        oBody = oBody.Replace("</body>", "<script src=\"http://hoge/hogehoge.js\"></script></body>");

        oSession.utilSetResponseBody(oBody);
    }
}

参考URL

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
16
Help us understand the problem. What are the problem?