値の中に引用符や # がある場合
値が波括弧で始まる JSON、単引用符の中の二重引用符、# を含む値と行末コメント、バッククォートの値を並べた境界の例です。それぞれ値の範囲を正しく見分けます。
入力
.env の内容
JSON={"foo": "bar"}
S='say "hi"'
A=b#c # note
T=`x y`
結果の形
値を *** に伏せた全文
結果
エラー 0 件・警告 0 件・情報 1 件
指摘(エラー・警告・情報)
- 情報 全体 値を共有用に伏せるだけの道具で、安全性は保証しません。行末コメントやコメント行の文章に秘密が書かれていても、そのまま残ります。共有前に目で確認してください。
| 設定の数 | 4 個 |
|---|---|
| 空値 | 0 個 |
| export 付き | 0 個 |
| コメントアウトの設定 | 0 個 |
伏せ字の結果
JSON=*** S='***' A=*** # note T=`***`
検算(この結果になる理由)
README では引用符の中の別種の引用符はそのまま値です。JSON は引用符で始まらないため行全体が値、S は単引用符の内側がすべて値です。A は「b#c」まで(空白の直前の # は値の一部、空白を伴う # から行末コメント)で、T はバッククォートの内側が値です。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- 値を共有用に伏せるだけで、安全性の保証ではありません。コメントの文章、行末コメント、キー名そのものに秘密が含まれていると、そのまま残ります。
- dotenv の README にない拡張(変数展開 ${VAR}、コマンド置換、エスケープの細かい挙動)は扱いません。これらは値の一部として伏せます。
- キー名の分類(秘密か設定か)や、2 つの .env の差分比較はできません。
ご利用にあたって
- 伏せ字にしても安全とは限りません。共有前に結果を必ず目で確認してください。
- 一度でも本物の秘密を公の場所に載せてしまった場合は、その値を無効化(再発行)してください。