DEV

Telerik Fiddler Filtersによるトラフィック情報のフィルタ方法

11月 4, 2021

fiddler
Telerik Fiddler Filters機能によるトラフィック情報のフィルタ方法

ここでは、Telerik Fiddler Classic(以下、Fiddler)のFilters機能の使い方について、詳細に説明します。

Fiddlerとはそもそも何か、また、Fiddlerの使い方全般に関しては、以下の記事をご確認ください:

FiddlerのFilters機能を使用すると、「キャプチャしたHTTP(S)リクエスト一覧」をフィルタし、必要なものだけを表示できます。

最近のブラウザは、google検索をするだけでも、複数のHTTP(S)リクエストを発行しており、それらはすべてFiddlerのリクエスト一覧に表示されます。調査中や確認中の時に、必要なHTTP(S)リクエスト以外が一覧に表示されると作業効率が下がります(涙)。フィルタ機能を使用すると、必要な情報のみを一覧に表示でき、効率よく調査を進めることができます。

Filters機能は、以下の様なケースで力を発揮します:

  • localhostや特定のウェブサイトとの通信だけの調査
  • Webアプリのフロントエンド側の単体テスト

Filters機能について、詳細を見ていきましょう。

Filters機能の画面構成と使い方概要

本章では、Filters機能の画面構成と使い方の概要を説明します。Filters機能の設定とルールの詳細は、次章で説明します。

画面構成

Filters機能は、以下画面の緑枠、青枠、赤枠の大きく3つに分けることができます。それぞれの概要は以下の通りです:

  • 緑:キャプチャしたHTTP(S)リクエスト一覧(以下、「リクエスト一覧」)
  • 青:Filters機能の有効化と設定内容の保存
  • 赤:Filters機能の設定
Filter機能の画面構成
Filters機能の画面構成

使い方概要

Filters機能は、設定情報に基づきリクエスト一覧に表示するデータをフィルタします。Composer機能やAutoResponder機能と比較すると、必要な設定を選択して、フィルタを有効にするだけです。操作方法は難しくありません。

Fiddler機能全般にいえることですが、ほぼすべての機能で、「リクエストをサーバに送信する直前」か「レスポンスをブラウザに返す直前」で中断し、データを修正する機能があります。Filters機能も例外なく、この機能が実装されています。具体的な操作方法は、「ブレークポイント」で説明します。

Filters機能の有効化と設定内容の保存

ここでは、FIlters機能を有効化する方法と設定内容の保存方法を説明します。

有効化

「Use Filters」チェックボックスを選択し、Filters機能を有効にします。

有効となっている場合は「Filtersタブにチェックが入っている」状態となり、無効となっている場合は、 「Filtersタブにチェックが入ってない」状態 となります。

Filters機能を有効化した状態
Filters機能を有効化した状態
 Filters機能を無効化した状態
Filters機能を無効化した状態

設定内容(Filterset)の保存

Actionsボタンを選択すると、以下の選択肢を表示します。それぞれの選択肢の意味を説明します:

  • Run Filterset now:画面に表示しているフィルタを実行。Filters機能の設定を一部変更した場合は、これを選択しないと、Fiddlerには新しい設定が反映されない
  • Load Filterset…:保存しているフィルタ情報を読込
  • Save Filterset…:画面に表示しているフィルタ情報を保存
Actionsボタン選択時に表示される選択肢一覧
Actionsボタン選択時に表示される選択肢一覧

Filter機能の設定

ここでは、Filters機能で設定できる項目を説明します。

Hostsグループボックス

Hostsグループボックスでは、リクエスト一覧をホスト名でフィルタします。2種類のフィルタ方法があります。それぞれ詳細に説明します:

  • Zone Filterプルダウン
  • Host Filterプルダウン
Hosts グループボックス
Hosts グループボックス

Zone Filter プルダウン

Zone Filterプルダウンでは、イントラネットホストかインターネットホストのどちらかをリクエスト一覧に表示する様に設定できます。それぞれの違いは以下の通りです:

  • - No Zone Filter -
    ゾーンフィルタなし
  • イントラネットホスト(「ピリオドなしのホスト名」)
    localhostなどを表示。IPアドレス(127.0.0.1など)はイントラネットホストとは認識されない
  • インターネットホスト(「ピリオドありのホスト名」と「IPアドレス」)
    kennyshroff.comやIPアドレスを表示される。IPアドレスであれば、ローカル・グローバル問わず、リクエスト一覧に表示される

Host Filterプルダウン

Host Filterプルダウンでは、以下の選択肢とテキストエリアに入力するIPアドレス、ホスト名の組み合わせで、リクエスト一覧に表示する/しないを設定できます。テキストエリアに複数のIPアドレス、ホスト名を列挙する場合は、セミコロン「;」で区切ります:

  • - No Host Filter -
    ホストフィルタなし
  • Hide the following Hosts
    テキストエリア内のホスト、IPアドレスはリクエスト一覧に表示しない
  • Show only the following Hosts
    テキストエリア内のホスト、IPアドレスはリクエスト一覧に表示する
  • Flag the following Hosts
    テキストエリア内のホスト、IPアドレスをハイライト(ボールド表示)する

Client Processグループボックス

Client Processグループボックスでは、特定のクライアントからのHTTP(S)リクエストのみをリクエスト一覧に表示する/表示しないを設定できます。具体的には、以下の3項目の組み合わせで、表示する/しないを設定できます。それぞれを詳細に説明します:

  • Show only traffic from
  • Show only Internet Explorer traffic
  • Hide traffic from Service Host
Client Process グループボックス
Client Process グループボックス

Show only traffic from

「プルダウンから指定したプロセス」のトラフィックのみをリクエスト一覧に表示します。プルダウンを選択すると、起動中のプロセス一覧を表示するため、表示内容はカオスになりがちです(笑):

プロセス一覧
カオスなプロセス一覧

Show only Internet Explorer traffic

Internet Explorer関連のトラフィックのみをリクエスト一覧に表示します。

2021年11月3日時点の最新版では、Microsoft Edgeには対応しておらず、IE11のトラフィックのみをリクエスト一覧に表示します。Microsoft Edgeのトラフィックを表示したい場合は、「Show only traffic from」で、Microsoft Edgeのプロセスを選択するか、Fiddlerの画面左下のプロセス一覧からWeb Browsersを選択します。

デフォルトでは、「All Processes」が選択されています:

プロセス一覧から選択できる項目
プロセス一覧から選択できる項目

Hide traffic from Service Host

Windowsのsvchost.exeのトラフィックをリクエスト一覧に表示しません。svchost.exeは、RSSフィードやバックグラウンドでネットワーク接続をするプロセスです。

Request Headers グループボックス

Request Headersグループボックスでは、リクエストヘッダに特定の情報があるものをリクエスト一覧に表示する/表示しない/ハイライトする様に設定できます 。 具体的には、以下の5項目の組み合わせで、表示する/しない/ハイライトすることを設定できます。それぞれを詳細に説明します:

  • Show only if URL contains
  • Hide if URL contains
  • Flag requests with headers
  • Delete request headers
  • Set request header
Request Headers グループボックス
Request Headers グループボックス

Show only if URL contains

URL内に特定の文字列を含むもののみをリクエスト一覧に表示します。以下のキーワードを使用できます:

  • EXACT
    大文字、小文字まで、入力した通りのものをリクエスト一覧に表示。
    例:EXACT://example.co.jp/q=CASE+SENsitive
  • REGEX
    正規表現を使用して、合致するものをリクエスト一覧に表示。
    例:REGEX:^.*BodyText.*$

Hide if URL contains

URL内に特定の文字列を含むものをリクエスト一覧に表示しません。

Flag requests with headers

HTTPヘッダ内に指定した項目があれば、フラグを立てます(ボールドで表示します)。指定する項目は、複数指定できます。

「,」(カンマ)か「;」(セミコロン)で区切ってください:

設定:HTTPヘッダ内に「Connection」、「secure」を指定
結果: 該当のHTTPヘッダを含むものをボールドで表示

Delete request headers

HTTPリクエストヘッダから特定のヘッダを削除します。

Set request header

Delete request hearderとは反対に、HTTPリクエストヘッダにリクエストヘッダを1件追加します。

HTTPリクエストヘッダを複数追加したい場合は、Composer機能を使用してください。

Breakpoints グループボックス

Breakpointsグループボックスでは、ブレークポイントを張り、条件に合致したHTTP(S)リクエスト・レスポンスをFiddlerでブレーク(中断)し、データ修正→送信できます。以下の4項目の組み合わせでブレークポイントを設定できます(単体でもブレークできます)。どの項目でも、ブレーク後、リクエスト内容を修正→「サーバかブラウザ」に送信する挙動となります。それぞれを詳細に説明します:

  • Break request on POST
  • Break on XMLHttpRequest
  • Break response on Content-Type
  • Break request on GET with query string
Breakpoints グループボックス
Breakpoints グループボックス

Break request on POST

POSTメソッドによるHTTP(S)リクエストの場合、Fiddlerでブレークします。

【ブレークするタイミング】
HTTP(S)リクエスト:ブラウザ→Fiddler(ここでブレーク)→サーバ
HTTP(S)レスポンス:ブラウザ←Fiddler←サーバ

Break on XMLHttpRequest

HTTPリクエストヘッダに「X-Requested-With: XMLHttpRequest」が含まれている場合、Fiddlerでブレークします。

【ブレークするタイミング】
HTTP(S)リクエスト:ブラウザ→Fiddler(ここでブレーク)→サーバ
HTTP(S)レスポンス:ブラウザ←Fiddler←サーバ

Break response on Content-Type

HTTPレスポンスヘッダに指定したContent-Typeが存在している場合、Fiddlerでブレークします。

【ブレークするタイミング】
HTTP(S)リクエスト:ブラウザ→Fiddler→サーバ
HTTP(S)レスポンス:ブラウザ←Fiddler(ここでブレーク)←サーバ

Break request on GET with query string

GETメソッドによるHTTP(S)リクエストで、queryストリングがURLに付随している場合、ブレークします。

【ブレークするタイミング】
HTTP(S)リクエスト:ブラウザ→Fiddler(ここでブレーク)→サーバ
HTTP(S)レスポンス:ブラウザ←Fiddler←サーバ

【例】
URL:https://bayden.com/sandbox/status.asp?status=200
この場合、queryストリングは、「?」以降の文字列となります:「status=200」。

Response Status Code グループボックス

リクエスト一覧から「特定のHTTPレスポンス ステータス コード」が返ってきたものを非表示にします。 具体的には、以下の5項目から非表示にするものを選択します。それぞれを詳細に説明します:

  • Hide success (2xx)
  • Hide non-2xx
  • Hide Authentication demands (401,407)
  • Hide redirects (300,301,302,303,307)
  • Hide Not Modified (304)
Response Status Code グループボックス
Response Status Code グループボックス

Hide success (2xx)

2xx系のHTTPレスポンス ステータス コードが返ってきたものをリクエスト一覧から非表示にします。

Hide non-2xx

2xx系以外のHTTPレスポンス ステータス コードが返ってきたものをリクエスト一覧から非表示にします。

Hide Authentication demands (401,407)

401(Unauthorized:認証資格が不足している)、407(プロキシ認証が必要)のHTTPレスポンス ステータス コードが返ってきたものをリクエスト一覧から非表示にします。

Hide redirects (300,301,302,303,307)

リダイレクト系(300,301,302,303,307)のHTTPレスポンス ステータス コードが返ってきたものをリクエスト一覧から非表示にします。

Hide Not Modified (304)

304(Not Modified:変更なし) HTTPレスポンス ステータス コードが返ってきたものをリクエスト一覧から非表示にします。

Response Type and Size グループボックス

リクエスト一覧に対して、以下2種類の操作を行います:

・「特定のHTTPレスポンス タイプ・サイズ」が返ってきたものを非表示
・リクエスト一覧をレスポンス時間に応じて、色分け

具体的に選択できる項目は、以下の8項目となります。それぞれを詳細に説明します:

  • コンテンツタイプ プルダウン
  • Hide smaller than XXX KB
  • Hide larger than XXX KB
  • Time HeatMap
  • Block script files
  • Block image files
  • Block SWF files
  • Block CSS files
Response Type and Size グループボックス
Response Type and Size グループボックス

コンテンツタイプ プルダウン

コンテンツタイプ プルダウンは、選択した項目を表示するか非表示にします。詳細は、以下をご確認ください:

  • Show all Content-Types
    全てのコンテンツタイプを表示
  • Show only IMAGE/*
    画像のコンテンツタイプのみを表示
  • Show only HTML
    HTMLのコンテンツタイプのみを表示
  • Show only TEXT/CSS
    TEXT/CSSのコンテンツタイプのみを表示
  • Show only SCRIPTS
    JavaScriptのコンテンツタイプのみを表示
  • Show only XML
    XMLのコンテンツタイプのみを表示
  • Show only JSON
    JSONのコンテンツタイプのみを表示
  • Hide IMAGE/*
    画像のコンテンツタイプを非表示

Hide smaller than XXX KB

指定したKB未満のHTTPレスポンスは非表示とします。

例えば、40KBと設定した場合、 40KBまでは表示されます。

ここでの40KBは「40,000 Bytes」です。 39,999 Bytesは非表示となります。

Hide larger than XXX KB

指定したKB+1バイト以上のHTTPレスポンスは非表示とします。

例えば、40KBと設定した場合、40KB(+1byte)以上のファイルは非表示とします。

ここでの40KBは上記同様「40,000 Bytes」です。 「40,000 Bytes」 までは表示されます。

Time HeatMap

リクエスト一覧をレスポンス時間で色分けします。レスポンス時間に応じて「背景色」が以下となります:

  • 緑色:レスポンス時間は、50ミリ秒未満
  • 無色:レスポンス時間が、50ミリ秒以上、300ミリ秒未満
  • 黄色:レスポンス時間が、300ミリ秒以上、500ミリ秒未満
  • 赤色:レスポンス時間が、500ミリ秒以上
色付けされたリクエスト一覧
色付けされたリクエスト一覧

Block script/image/SWF/CSS files

それぞれJavaScript、画像、SWFファイル、CSSファイルのリクエストを404エラー(Not Found:ファイル/ページが存在しない)で応答します。

例えば、「Block image files」チェックボックスを選択すると、以下の様に、画像が非表示の状態となります:

Response Type and Sizeの「Block image files」チェックボックスにチェックを入れた場合の画面
Response Type and Sizeの「Block image files」チェックボックスにチェックを入れた場合の画面

Response Headers グループボックス

リクエスト一覧に対して、以下2種類の操作を行います:

・特定の条件に合致するレスポンス行を太字にする機能
・HTTPレスポンスヘッダの特定項目を追加/削除する機能

具体的に選択できる項目は、以下の4項目となります。それぞれを詳細に説明します:

  • Flag responses that set cookies
  • Flag responses with headers
  • Delete response headers
  • Set response header
Response Headers グループボックス
Response Headers グループボックス

Flag responses that set cookies

リクエスト一覧の中で、クッキーが設定されているレスポンスを太字で表示します。

Flag responses with headers

リクエスト一覧の中で、特定のヘッダ情報を含んでいるレスポンスを太字で表示します。以下は、Flag responses with headersに「Server」と入力した場合のリクエスト一覧です(#71が入力前のキャプチャ、#74が入力後にキャプチャ。#74は、太字になっているのが分かります):

Flag responses with headersに「Server」と入力した場合のリクエスト一覧

Delete response headers

HTTP(S)レスポンスの中から指定したレスポンスヘッダを削除します。

Set response header

HTTP(S)レスポンスの中に指定したレスポンスヘッダを追加します。複数のレスポンスヘッダを追加する場合は、AutoResponder機能を使用してください。

Filters機能の説明は以上です。

【Fiddler関連記事一覧】

-DEV