HARファイル解析ツール

Chrome・Firefox・Safari の HAR ファイルをブラウザ内で解析。ウォーターフォール、リクエスト詳細と cURL、遅い・失敗したリクエストを確認し、Cookie やトークンをマスクしたコピーを書き出せます。

  • ブラウザ内で処理
  • データはブラウザ外に出ません
  • 無料 · 登録不要
.har ファイルをここにドロップ、またはクリックして選択 Ctrl+V(⌘V)で HAR の JSON を貼り付けても読み込めます。ファイルはこの端末内で読み、アップロードしません。
Chrome / Edge:DevTools の Network(ネットワーク)パネルで事象を再現し、エクスポートボタンを押します。Chrome 130 以降の既定の書き出しには Cookie、Set-Cookie、Authorization ヘッダーが含まれません。含める場合は設定の「ネットワーク」で「センシティブ データを含む HAR の生成を許可する」をオンにし、エクスポートボタンを長押しして「HAR(センシティブ データを含む)をエクスポート...」を選びます。Firefox:リクエスト一覧の右クリックメニュー(英語表示では Save All As HAR)。Safari:Web インスペクタの「ネットワーク」タブの書き出しボタン。 HAR は log.entries 配列を持つ JSON で、log.version は 1.x である必要があります。ファイルは 300 MB まで。開けないときは理由を表示します(空のファイル、JSON エラーの行と列、HAR ではない JSON、未対応のバージョン)。表示中のファイルはそのまま残ります。読み込み、機密データの検出、マスク、cURL の生成は短い単位に分けて実行するため、その間もクリックに応答します。「キャンセル」で新しいファイルの読み込み(表示中のファイルは残ります)や実行中の書き出しを止められます。Apple M1 Max の Chrome で、68 MB・13,253 リクエストの HAR は約 0.7 秒で開き、マスクして書き出すのに約 2.7 秒かかりました。

ファイルはこのタブの中で読み込みます。アップロードはせず、ページを離れた後も保存しません。

例・詳しい説明・よくある質問 実際の出力つきの例、ほかのツールとの違い、よくある質問。

サポートに「機密データを含む HAR」を求められたら

NTT データ イントラマートのサポートサイトの FAQ「harファイル(ブラウザのネットワークログ)の取得方法を教えてください」は、Chrome 130 以降では「センシティブ データを含む HAR の生成を許可する」をオンにしてから書き出すよう案内しています。Cookie や Authorization が調査の手がかりになるためです。

ただ、Cookie の値そのものはログイン中のセッションを表します。本ツールのマスクは値だけを [redacted] に置き換え、Cookie の名前と Set-Cookie の属性(Path、Secure、HttpOnly、SameSite)は残すので、「どの Cookie が送られたか」「属性が正しいか」は読み取れます。サンプル HAR のログインリクエストはこうなります。

set-cookie: session=[redacted]; Path=/; Secure; HttpOnly; SameSite=Lax
{"email":"shopper@example.com","password":"[redacted]","remember":true}
{"user":{"id":42,"name":"Demo Shopper"},"access_token":"[redacted]","expires_in":3600}

値まで必要かどうかは問い合わせ先に確認してください。マスクしたコピーで足りることも多いはずです。

マスクの範囲

  • Cookie、Set-Cookie、Authorization の値(Bearer などの方式名は残す)と、cookies 一覧のすべての値。
  • 名前が認証情報らしいヘッダー、URL パラメータ(クエリとフラグメント)、フォーム、multipart、JSON のキー(深さを問わない)。token、secret、password、session、api key、signature、csrf、code、sid などが対象で、token_type や Access-Control-Allow-Credentials は対象外です。
  • それ以外の場所にあるトークン形式の文字列。JWT、Bearer の値、GitHub・Stripe・AWS などのキー形式(APIキーマスキング と同じ規則)です。
  • 取り除いた値がファイルの別の場所(HTML や別の URL)に出てくれば、そこも置き換えます。保存前にファイルを読み込み直し、取り除いた値が 1 つも残っていないことを確かめます。

メールアドレスのような個人情報は認証情報ではないので残します。残したボディの件数を報告に出すので、必要なら「追加でマスクする名前」に email などを入れるか、ボディごと削除してください。

ウォーターフォールの見方

各バーは startedDateTime から始まり、HAR 1.2 の timings に沿って最大 7 つに分かれます。キュー / ストール(blocked)、DNS、接続、TLS(ssl)、送信、待機(最初のバイトまで)、受信です。-1 はそのフェーズがなかったことを示し、「該当なし」と表示します。縦線は DOMContentLoaded と load です。

Chrome と Safari は仕様どおり TLS を connect に含めるので、バーではその部分を TCP と TLS に分けます。Firefox は 2 つを別々に記録し、time には両方を足します。

connect 18 ms + ssl 21 ms (time 151 ms = sum of all seven)

仕様の式だけで計算するツールでは、Firefox の HTTPS リクエストのバーが 21 ms 短くなり、すべてに「合計が合わない」と出ます。転送量は Chrome と Safari では _transferSize、Firefox では転送量全体が入っている bodySize から読みます。

cURL をコピーするとき

Chrome DevTools の「Copy as cURL」と同じ書き方です。値は一重引用符で囲み、' や ! を含むときは $'…' を使います。:authority などの HTTP/2 疑似ヘッダーと Accept-Encoding は含めず、Cookie は -b で渡します。「マスク後の値を使う」がオンなら、ログインリクエストは次のようになります。

curl --url 'https://api.example.com/v1/login' \
  -H 'accept: */*' \
  -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36' \
  -H 'content-type: application/json' \
  -H 'origin: https://shop.example.com' \
  -H 'x-csrf-token: [redacted]' \
  --data-raw '{"email":"shopper@example.com","password":"[redacted]","remember":true}'

Python や Go のコードにするなら cURL コード変換 に貼り付けます。

ほかの HAR ツールとの違い

2026-10-01 に同じファイル(サンプル HAR に、x-session-id ヘッダーと 3,200 文字より後ろに入れ子の refresh_token を持つリクエストを加えたもの)を読み込み、マスク後の出力から 7 つの認証情報を探しました。

ツール出力に残ったもの
haranalyzer.com(日本語版)の「機密除去済みHARをダウンロード」HTTP/2 の :path ヘッダーに残った access_token、sid= のセッション ID、x-session-id。ボディはすべて削除
Google Admin Toolbox HAR Analyzer のマスクボタンリクエストボディのパスワード、x-session-id、入れ子の refresh_token、HTML と sid= のセッション ID
Chrome の既定の書き出しCookie・Set-Cookie・Authorization の 3 ヘッダー以外はすべて
本ツール(既定の設定)7 つとも置き換え済み。メールアドレスは残り、残したボディの件数を報告

どのツールもファイルをサーバーへ送っていませんでした。ボディを丸ごと消すと手軽ですが、不具合の原因がレスポンスの中身にあることもあります。本ツールは既定では認証情報だけを置き換え、ボディの削除は選べるようにしています。

FAQ

HAR ファイルはどう書き出しますか?

Chrome / Edge は DevTools の Network(ネットワーク)パネルで事象を再現し、エクスポートボタンを押します。Chrome 130 以降の既定の書き出しには Cookie、Set-Cookie、Authorization ヘッダーが含まれません。含める場合は設定の「ネットワーク」で「センシティブ データを含む HAR の生成を許可する」をオンにし、エクスポートボタンを長押しして「HAR(センシティブ データを含む)をエクスポート...」を選びます。Firefox はリクエスト一覧の右クリックメニュー(英語表示では Save All As HAR)、Safari は Web インスペクタの「ネットワーク」タブの書き出しボタンを使います。

Chrome の既定の書き出しなら、そのまま共有できますか?

そうとは限りません。Chrome が取り除くのは 3 つのヘッダーと Cookie の一覧だけで、URL のトークン、リクエストボディのパスワード、CSRF トークンや API キーのような独自ヘッダー、レスポンスボディは残ります。ファイルを読み込むと「このファイルに含まれる機密情報」に残っている件数が出ます。

HAR はアップロードされますか?

されません。ファイルはこのタブの中で読み込んで解析し、内容を含むリクエストは送りません。保存もしません。このツールのページは Google アナリティクスと AdSense を読み込みません。「別のファイルを開く」かページの再読み込みでメモリから消えます。

entry.time とタイミングの合計が合わないのはなぜですか?

HAR 1.2 では entry.time は blocked・dns・connect・send・wait・receive の合計で、ssl は connect に含まれます。Firefox は connect に TCP の時間だけを入れ、ssl を別に足します。本ツールはエントリごとにどちらの合計が合うかを見て描画します。1.5 ms を超える差は「気づいた点」と「タイミング」タブに出ます。

一部のリクエストだけを書き出せますか?

できます。「リクエスト」で URL の語句、ステータス、種類で絞り込み、「マスクして書き出す」で「表示中の N 件」を選びます。書き出したファイルは HAR 1.2 なので DevTools で読み込み直せます。cURL のコピーも同じ絞り込みに従います。