HARファイルを作成
- プラン: Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
HTTPアーカイブ(HAR)形式ファイルは、HTTPリクエストとHTTPレスポンスに関する情報を交換するための業界標準です。HARファイルの内容はJSON形式で、Webサイトとのブラウザのインタラクションが含まれています。ファイル拡張子.harが一般的に使用されます。
HARファイルは、CI/CDパイプラインでWeb APIファジングを実行するために使用できます。
HARファイルには、WebクライアントとWebサーバー間で交換される情報が保存されます。認証トークン、APIキー、セッションクッキーなどの機密情報も保存される可能性があります。HARファイルの内容をリポジトリに追加する前に、レビューすることを推奨します。
HARファイルの作成
HARファイルは、手動で作成するか、Webセッションを記録するための専用ツールを使用して作成できます。専用ツールを使用することをお勧めします。ただし、これらのツールで作成されたファイルが機密情報を公開せず、安全に使用できることを確認することが重要です。
次のツールは、ネットワークアクティビティーに基づいてHARファイルを生成するために使用できます。ネットワークアクティビティーを自動的に記録し、HARファイルを生成します:
- GitLab HAR recorder
- Insomnia API client
- Fiddlerデバッグproxy
- Safari web browser
- Chrome web browser
- Firefox web browser
HARファイルには、認証トークン、APIキー、セッションクッキーなどの機密情報が含まれている場合があります。HARファイルの内容をリポジトリに追加する前に、レビューする必要があります。
GitLab HAR recorder
GitLab HAR Recorderは、HTTPメッセージを記録し、HARファイルに保存するためのコマンドラインツールです。
Install GitLab HAR recorder
前提要件:
- Python 3.6以上をインストールします。
- Microsoft Windowsの場合は、
Microsoft Visual C++ 14.0もインストールする必要があります。Visual Studio Downloads pageのVisual Studio用ビルドツールに含まれています。 - HAR Recorderをインストールします。
+GitLab HAR recorderをインストールする:
pip install gitlab-har-recorder --extra-index-url https://gitlab.com/api/v4/projects/22441624/packages/pypi/simpleCreate a HAR file with GitLab HAR recorder
- プロキシポートとHARファイル名でレコーダーを起動します。
- プロキシを使用して、ブラウザのアクションを完了します。
- プロキシが使用されていることを確認してください!
- レコーダーを停止します。
Insomnia API client
Insomnia API clientは、多くの用途の中でも、APIの設計、記述、テストに役立つAPI設計ツールです。Web APIファジングで使用できるHARファイルを生成するためにも使用できます。
Create a HAR file with the Insomnia API client
- APIを定義またはインポートします。
- Postman v2.
- cURL.
- OpenAPI v2, v3.
- 各APIコールが機能することを確認します。
- OpenAPI仕様をインポートした場合は、作業データを追加します。
- API > Import/Export(インポート/エクスポート)を選択します。
- Export Data(データのエクスポート) > Current Workspace(現在のワークスペース)を選択します。
- HARファイルに含めるリクエストを選択します。
- エクスポートを選択します。
- Select Export Type(エクスポートタイプの選択)ドロップダウンリストで、HAR – HTTP Archive Formatを選択します。
- 完了を選択します。
- HARファイルの場所とファイル名を入力します。
Fiddlerデバッグproxy
Fiddlerは、Webデバッガツールです。HTTPおよびHTTP(S)のネットワークトラフィックをキャプチャし、各リクエストを調べることができます。また、HAR形式でリクエストとレスポンスをエクスポートできます。
Create a HAR file with Fiddler
- Fiddler home pageにアクセスしてサインインします。アカウントをまだお持ちでない場合は、アカウントを作成してください。
- APIを呼び出すページを参照します。Fiddlerはリクエストを自動的にキャプチャします。
- 1つまたは複数のリクエストを選択し、コンテキストメニューからエクスポート > Selected Sessions(選択されたセッション)を選択します。
- Choose Format(形式を選択)ドロップダウンリストで、HTTPArchive v1.2を選択します。
- ファイル名を入力して、保存を選択します。
Fiddlerに、エクスポートが成功したことを確認するポップアップメッセージが表示されます。
Safari web browser
Safariは、Appleが管理するWebブラウザです。Web開発の進化に伴い、ブラウザは新しい機能をサポートするようになります。Safariを使用すると、ネットワークトラフィックを調査し、HARファイルとしてエクスポートできます。
Create a HAR file with Safari
前提要件:
Developメニュー項目を有効にします。- Safariの設定を開きます。Command+,を押すか、メニューからSafari > 設定を選択します。
- 高度な設定タブを選択し、
Show Develop menu item in menu barを選択します。 - 設定ウィンドウを閉じます。
- Web Inspectorを開きます。Option+Command+iを押すか、メニューからDevelop > Show Web Inspector(Web Inspectorを表示)を選択します。
- ネットワークタブを選択し、Preserve Log(ログを保持)を選択します。
- APIを呼び出すページを参照します。
- Web Inspectorを開き、ネットワークタブを選択します
- エクスポートするリクエストを右クリックし、Export HAR(HARをエクスポート)を選択します。
- ファイル名を入力して、保存を選択します。
Chrome web browser
Chromeは、Googleが管理するWebブラウザです。Web開発の進化に伴い、ブラウザは新しい機能をサポートするようになります。Chromeを使用すると、ネットワークトラフィックを調査し、HARファイルとしてエクスポートできます。
Create a HAR file with Chrome
- Chromeのコンテキストメニューから、Inspectを選択します。
- ネットワークタブを選択します。
- Preserve log(ログを保持)を選択します。
- APIを呼び出すページを参照します。
- 1つまたは複数のリクエストを選択します。
- 右クリックしてSave all as HAR with content(コンテンツ付きでHARとしてすべて保存)を選択します。
- ファイル名を入力して、保存を選択します。
- 追加のリクエストを追加するには、それらを選択して同じファイルに保存します。
Firefox web browser
Firefoxは、Mozillaが管理するWebブラウザです。Web開発の進化に伴い、ブラウザは新しい機能をサポートするようになります。Firefoxを使用すると、ネットワークトラフィックを調査し、HARファイルとしてエクスポートできます。
Create a HAR file with Firefox
- Firefoxのコンテキストメニューから、Inspectを選択します。
- ネットワークタブを選択します。
- APIを呼び出すページを参照します。
- ネットワークタブを確認し、リクエストが記録されていることを確認します。メッセージ
Perform a request or Reload the page to see detailed information about network activityがある場合は、再読み込みを選択してリクエストの記録を開始します。 - 1つまたは複数のリクエストを選択します。
- 右クリックしてSave All As HAR(HARとしてすべて保存)を選択します。
- ファイル名を入力して、保存を選択します。
- 追加のリクエストを追加するには、それらを選択して同じファイルに保存します。
HAR verification
HARファイルを使用する前に、機密情報が公開されていないことを確認することが重要です。
HARファイルごとに、次のことを行う必要があります:
- HARファイルの内容を表示する
- 機密情報についてHARファイルをレビューする
- 機密情報を編集または削除する
View HAR file contents
構造化された方法でコンテンツを表示できるツールで、HARファイルの内容を表示することをお勧めします。いくつかのHARファイルビューアがオンラインで利用できます。HARファイルをアップロードしたくない場合は、コンピューターにインストールされているツールを使用できます。HARファイルはJSON形式を使用しているため、テキストエディタで表示することもできます。
HARファイルの表示に推奨されるツールは次のとおりです:
- HAR Viewer - (online)
- Google Admin Toolbox HAR Analyzer - (online)
- Fiddler - local
- Insomnia API Client - local
Review HAR file content
HARファイルで次のいずれかを確認します:
- アプリケーションへのアクセスを許可するのに役立つ可能性のある情報: 認証トークン、認証トークン、クッキー、APIキー。
- 個人識別情報(PII)。
機密情報を編集または削除することを強くお勧めします。
開始するためのチェックリストとして、以下を使用してください。これは網羅的なリストではありません。
- シークレットを探します。例: アプリケーションで認証が必要な場合は、一般的な場所または認証情報を確認してください:
- 認証関連ヘッダー。例: Cookie、認可。これらのヘッダーには有効な情報が含まれている可能性があります。
- 認証に関連するリクエスト。これらのリクエストの本文には、ユーザー認証情報やトークンなどの情報が含まれている場合があります。
- セッションクッキー。セッションクッキーは、アプリケーションへのアクセスを許可する可能性があります。これらのトークンの場所は異なる場合があります。ヘッダー、クエリパラメータ、または本文に存在する可能性があります。
- 個人識別情報を探す
- 例: アプリケーションがユーザーのリストとそれらの個人データ(電話、名前、メール)取得する場合。
- 認証情報にも個人データが含まれている可能性があります。
Edit or remove sensitive information
HARファイルコンテンツのレビュー中に見つかった機密情報を編集または削除します。HARファイルはJSONファイルであり、任意のテキストエディタで編集できます。
HARファイルを編集した後、HARファイルビューアで開いて、形式と構造がそのまま残っていることを確認します。