0

ENV差分チェッカー

2つの.envファイル(ステージング vs 本番、デプロイ前 vs デプロイ後など)を比較し、追加・削除・変更されたキーを正確に表示します。シークレット風の値は自動的にマスクされます。

🔒 ブラウザ内で完全に処理されます。ここに入力した内容はアップロードされません。

処理中... 0%
両方のファイルを解析中
差分を計算中
シークレットをマスク中
完了

結果

ステージングの.envファイルを本番と比較したり、今日のデプロイ設定を先週のものと比べたりする作業を目視で行うことは、実際の障害の始まりです。DATABASE_URLの欠落、静かに変わったPORT、一方の環境でだけローテーションされたAPIキーなど、見落としが起こり得ます。両方のファイルを一般的なテキスト差分ツールに貼り付けてもあまり役に立ちません。どの行が異なるかはわかっても、実際にどの環境変数が変わったのかはわからず、出力をチームメイトと共有した瞬間にすべてのシークレット値が平文で表示されてしまいます。

このツールは、両方のファイルをdotenvが実際に読み込む方法で解析します。1行に1つのKEY=valueペア、#コメントと空行は無視、シングルクォートまたはダブルクォートで囲まれた値はクォートを外します(ダブルクォート内でのみ をアンエスケープ。これはdotenvの慣例に厳密に従っています)。また、シェルが読み込むenvファイルで使われるexport KEY=valueプレフィックスも許容します。各ファイルはクリーンなキー→値のマップになり、2つのマップをキーで差分比較します。ファイルAのみに存在する場合は「削除」、ファイルBのみに存在する場合は「追加」、両方に存在するが値が異なる場合は「変更」、値が同一の場合は「変更なし」(デフォルトでは非表示)と分類し、テーブルには実際に異なる部分に焦点が当たります。

このツールを実際のシークレットで安全に使えるようにするのが自動マスキング機能です。差分テーブルに表示されるすべての値は、2つの独立したシグナルに基づいてチェックされます。キー名がシークレット風かどうか(大文字小文字を区別せずにKEY、SECRET、TOKEN、PASSWORD、PRIVATE、CREDENTIALに一致するか)、または値自体のシャノンエントロピーが高いかどうかです。シャノンエントロピー(値の文字列に対する-Σ p(c)·log2(p(c)))は、APIキー、トークン、ランダムパスワードを通常の単語と統計的に区別する情報理論的な尺度で、キー名がヒントにならない場合でも有効です。どちらかのシグナルがあれば、値は最初と最後の2文字だけを残してマスクされ、変更行では旧の値と新の値で独立して計算されます。

解析、差分計算、エントロピースコアリング、マスキングのすべてがブラウザ内で実行され、ファイルも、そこから抽出された値も、外部に送信されることは一切ありません。これは、実際のデータベース資格情報、APIキー、パスワードを含む可能性が高い2つのファイルを左右に並べて扱うことを唯一の目的とするツールにふさわしい保証です。