14
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at
  • インターネット上のサイト等,様々な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

14
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?