HTTPアーカイブ形式
HTTP Archive(HAR) 形式のファイルは、HTTP リクエストと HTTP レスポンスの情報を交換するための業界標準です。HAR ファイルのコンテンツは JSON 形式で、ブラウザとウェブサイトのインタラクションを含みます。ファイル拡張子は.har
が一般的です。
HARファイルは、GitLab CI/CDパイプラインの一部としてウェブAPIファズテストを実行するために使用することができます。
HARファイルの作成
HARファイルは手動で作成することも、ウェブセッションの録画に特化したツールを使用して作成することもできます。専用のツールを使用することをお勧めします。ただし、これらのツールで作成されたファイルが機密情報を暴露せず、安全に使用できることを確認することが重要です。
以下のツールを使用すると、ネットワークアクティビティに基づいてHARファイルを生成できます。これらのツールは、ネットワークアクティビティを自動的に記録し、HARファイルを生成します:
- GitLab HAR Recorder.
- Insomnia API クライアント.
- Fiddler デバッグプロキシ。
- Safari ウェブブラウザ。
- Chrome ウェブブラウザ。
- Firefox ウェブブラウザ。
GitLab HARレコーダー
GitLab HAR RecorderはHTTPメッセージを記録し、HTTP Archive(HAR) ファイルに保存するコマンドラインツールです。GitLab HAR Recorderの詳細はホームページをご覧ください。
GitLab HAR Recorderのインストール
前提条件:
- Python 3.6以上のインストール。
- Microsoft Windows の場合は、
Microsoft Visual C++ 14.0
もインストールする必要があります。Visual StudioDownloads ページにあるBuild Tools for Visual Studioに含まれています。 - HAR Recorderをインストールします。
GitLab HAR Recorderをインストールします:
pip install gitlab-har-recorder --extra-index-url https://gitlab.com/api/v4/projects/22441624/packages/pypi/simple
GitLab HAR Recorderを使ってHARファイルを作成します。
- プロキシポートとHARファイル名を指定してレコーダーを起動します。
- プロキシを使用してブラウザーのアクションを完了します。
- プロキシが使用されていることを確認してください!
- レコーダーを停止してください。
HARにすべてのリクエストが含まれていることを確認するには、オンラインHARビューアなどを使用します:
Insomnia API クライアント
InsomniaAPI Client は、API の設計、記述、テストを支援する API 設計ツールです。また、Web API Fuzz Testing で使用する HAR ファイルを生成することもできます。
Insomnia API Client を使って HAR ファイルを作成します。
- API を定義またはインポートします。
- Postman v2.
- Curl。
- OpenAPI v2、v3。
- 各APIコールが動作することを確認します。
- OpenAPI 仕様をインポートした場合は、実際に動作するデータを追加します。
- API > インポート/エクスポートを選択します。
- Export Data (データのエクスポート)] > [Current Workspace (現在のワークスペース)] を選択します。
- HAR ファイルに含めるリクエストを選択します。
- エクスポートを選択します。
- Select Export Type] ドロップダウン リストで、[HAR – HTTP Archive Format] を選択します。
- To-Do を選択します。
- HARファイルの保存場所とファイル名を入力します。
Fiddlerデバッグプロキシ
Fiddlerはウェブデバッガツールです。HTTP と HTTP(S) のネットワークトラフィックをキャプチャし、それぞれのリクエストを調べることができます。また、リクエストとレスポンスを HAR 形式でエクスポートすることもできます。
Fiddler で HAR ファイルを作成
- Fiddlerのホームページにアクセスし、サインインしてください。アカウントをお持ちでない場合は、まずアカウントを作成してください。
- APIを呼び出すページをブラウズします。Fiddler は自動的にリクエストをキャプチャします。
- 1つ以上のリクエストを選択し、コンテキストメニューからExporter > Selected Sessions を選択します。
- 形式を選択] ドロップダウン リストで、[HTTPArchive v1.2] を選択します。
- ファイル名を入力し、[保存]を選択します。
Fiddlerは、エクスポートが成功したことを確認するポップアップメッセージを表示します。
サファリ・ウェブ・ブラウザ
SafariはAppleがメンテナーしているウェブブラウザです。ウェブ開発の進化に伴い、ブラウザは新しい機能をサポートしています。Safariではネットワークトラフィックを調査し、HARファイルとしてエクスポートすることができます。
SafariでHARファイルを作成
前提条件:
-
Develop
メニュー項目を有効にします。- Safariの環境設定を開きます。Command+, を押すか、メニューからSafari > Preferences… を選択します。
-
詳細設定タブを選択し、
Show Develop menu item in menu bar
。 - 環境設定ウィンドウを閉じます。
- Web インスペクタを開きます。Option+Command+iを押すか、メニューから [開発] > [Web インスペクタを表示] を選択します。
- Network] タブを選択し、[Preserve Log] を選択します。
- APIを呼び出すページを参照します。
- Web Inspectorを開き、Networkタブを選択します。
- エクスポートするリクエストを右クリックし、[Export HAR] を選択します。
- ファイル名を入力し、[保存]を選択します。
Chromeウェブブラウザ
ChromeはGoogleがメンテナーをしているウェブブラウザです。ウェブ開発の進化に伴い、ブラウザは新しい機能をサポートしています。Chromeでは、ネットワークトラフィックを調査し、HARファイルとしてエクスポートすることができます。
ChromeでHARファイルを作成
- ChromeのコンテキストメニューからInspectを選択します。
- ネットワーク]タブを選択します。
- ログを保存]を選択します。
- APIを呼び出すページを参照します。
- 1つ以上のリクエストを選択します。
- 右クリックし、[すべてコンテンツ付き HAR として保存] を選択します。
- ファイル名を入力し、[保存]を選択します。
- 追加のリクエストを追加するには、それらを選択して同じファイルに保存します。
Firefox ウェブブラウザ
Firefoxは Mozilla によってメンテナーされているウェブブラウザです。ウェブ開発の進化に伴い、ブラウザは新しい機能をサポートしています。Firefox では、ネットワークトラフィックを調査し、HAR ファイルとしてエクスポートできます。
FirefoxでHARファイルを作成
- FirefoxのコンテキストメニューからInspectを選択します。
- ネットワーク]タブを選択します。
- APIを呼び出すページを参照します。
-
Network] タブを確認し、要求が記録されていることを確認します。メッセージ
Perform a request or Reload the page to see detailed information about network activity
がある場合は、[Reload] を選択してリクエストの記録を開始します。 - 1つ以上のリクエストを選択します。
- 右クリックし、[すべて HAR として保存] を選択します。
- ファイル名を入力し、[保存]を選択します。
- 追加のリクエストを追加するには、それらを選択して同じファイルに保存します。
HAR検証
HARファイルを使用する前に、機密情報が漏洩しないことを確認することが重要です。
それぞれのHARファイルについて
- HARファイルの内容を見る
- HARファイルの機密情報のレビュー
- 機密情報の編集または削除
HARファイルの内容の表示
HARファイルの内容を構造的に表示できるツールで表示することをお勧めします。いくつかのHARファイルビューアーがオンラインでご利用いただけます。HARファイルをアップロードしたくない場合は、パソコンにインストールしたツールをご利用ください。HARファイルはJSON形式を使用しているため、テキストエディタで表示することもできます。
HARファイルの閲覧にお勧めのツールは以下の通りです:
- HAR Viewer- (オンライン)
- Google Admin Toolbox HAR Analyzer- (オンライン)
- Fiddler- ローカル
- Insomnia API クライアント- ローカル
HARファイルの内容のレビュー
HARファイルに以下のような内容がないか、レビュアーがレビューします:
- 例えば、認証トークン、認証トークン、クッキー、API キーなどです。
- 個人を特定できる情報(PII).
私たちは、機密情報を編集または削除することを強くお勧めします。
以下をチェックリストとしてご利用ください。網羅的なリストではありません。
- シークレットを探してください。例えば、アプリケーションが認証を必要とする場合、共通の場所や認証情報をチェックしてください:
- 認証関連ヘッダ。例:クッキー、作成者。これらのヘッダには有効な情報が含まれている可能性があります。
- 認証に関連するリクエスト。これらのリクエストのボディには、ユーザー証明書やトークンのような情報が含まれるかもしれません。
- セッショントークン。セッショントークンはアプリケーションへのアクセスを許可します。これらのトークンの場所は様々です。ヘッダ、クエリパラメータ、ボディなどです。
- 個人を特定できる情報を探す
- 例えば、アプリケーションがユーザーとその個人データ(電話、名前、電子メール)のリストを取得するとします。
- 認証情報も個人情報を含むかもしれません。
機密情報の編集または削除
HARファイルの内容レビューで見つかった機密情報を編集または削除します。HARファイルはJSONファイルで、テキストエディタで編集できます。
HARファイルを編集した後、HARファイルビューアーで開き、書式と構造が損なわれていないことを確認してください。
以下の例では、Visual Studio Codeのテキストエディタを使用して、ヘッダー内の作成者トークンを編集しています。