🛡 テキスト機密情報マスク
テキスト中のメールアドレス・電話番号・IP・クレジットカード番号・JWT・AWS キー・Bearer トークンなどを自動検出してマスクします。ログ・スクリーンショット用テキスト・SNS投稿前のチェックに。
🔒 プライバシーについて (重要)
- ・機密情報を扱うため、すべての検出・マスク処理はあなたのブラウザ内 (JavaScript) で完結します
- ・入力テキスト・検出結果は一切サーバーに送信されません
- ・開発者ツールの Network タブで通信が無いことを確認できます
- ・保存ログ・履歴・データベース等は存在しません
検出結果 (0)
マスク後テキスト
📖 つまずきやすいポイント
テキストからメールアドレス・電話番号・IP・カード番号・JWT・AWS キー・Bearer トークンなどを正規表現で検出し、置換・部分マスク・削除・ラベル化のいずれかで隠します。処理はブラウザ内で完結します。検出は「形式が決まっているもの」に限られます — 「検出 0 件」は「機密が無い」という意味ではありません。氏名・住所・社内の識別子のように形が定まらないものは、原理的に拾えません。
| ケース | 何が起きるか | どうする |
|---|---|---|
| 検出されなかった機密がそのまま残る | 正規表現が拾えるのは書式が決まっているものだけです。したがって氏名・住所・社内の案件番号・URL の中に埋まった ID・Slack のチャンネル名・データベース名・サーバーのホスト名は、そのまま残ります。とくに見落とされやすいのがファイルパスで、C:\Users\yamada\Desktop\... や /home/tanaka/ には実名が入っています。エラーログのスタックトレースには、内部のホスト名・ディレクトリ構成・使っているライブラリのバージョンが丸ごと出ており、これは攻撃者にとって有用な情報です。 |
作業を始める前に「このテキストに何が入っているか」を列挙してください — 検出結果を見てから考えるのでは遅く、ツールが見つけたものだけが機密だと錯覚します。列挙したうえで、ツールが拾わなかったものは手で置換してください (エディタの一括置換で十分です)。そして、マスク後のテキストを必ず最初から最後まで目で読んでください — 長いログなら、少なくとも先頭・末尾・エラーの前後は読みます。ログを共有する目的が「エラーの原因を見てもらう」ことなら、必要な数十行だけを切り出すのが最も安全です — 全文を渡す必要はほとんどありません。 |
| 部分マスクから元の値が絞り込まれる | a***z@example.com や 090-****-5678 のような部分マスクは、隠すよりも「候補を絞る」ことに寄与してしまう場合があります。ドメインが残っていれば所属が分かり、下 4 桁が残っていれば他のどこかで見た同じ番号と突き合わせられます。カード番号は特に危険で、先頭 6 桁 (発行会社) と末尾 4 桁が残っていれば、間の 6 桁のうち 1 桁はチェックディジットなので、実質 5 桁 = 10 万通りです。「マスクしてあるから安全」という感覚が、実際の安全性より先に生まれるのが、この方式のいちばん危ないところです。 |
共有先が不特定なら、完全置換かラベル置換を選んでください — [EMAIL] や [CARD] のように種別だけを残す形が、読みやすさと安全性の両立としては最良です (何があった場所かは分かるので、ログとしての意味は失われません)。部分マスクが妥当なのは、自分または限られたチームが後で見分ける必要がある場合だけです — 「どのユーザーのログか」を追跡したいなら、元の値ではなくハッシュの先頭数文字を使うほうが安全です (同一性は保てて、値は復元できません)。迷ったらラベル置換にしてください — 情報を残す判断は、残す理由が言えるときだけにしてください。 |
| 値は隠したのに構造から漏れる | JSON のログでキー名がそのまま残っていると、"user_email": "***" という 1 行から、そこにメールアドレスがあったことが確実に分かります。マスクの文字数が元の長さのままなら、値の長さも漏れます — トークンなら種類が推定でき、パスワードなら総当たりの範囲が狭まります。同じ理由で、同じ値が複数箇所にあったとき、マスク後も同じ文字列になっていれば「同一である」ことが伝わります — これはログの追跡には便利ですが、「この 2 つのリクエストは同じ人物」という情報を渡していることになります。 |
キー名ごと落とすか、ラベル置換で意図的に情報量を揃えてください — [EMAIL] という固定長のラベルに置き換えれば、長さの情報は消え、種別だけが残ります。同一性を残すかどうかは意識して選んでください — 障害調査で「同じユーザーの一連のリクエスト」を追いたいなら残す価値がありますが、外部に共有するなら、同一性そのものが個人の行動履歴になります。最終的な判断は「このテキストを誰が読むか」で決まります — 社内のチャンネルと、公開の issue と、ベンダーへの送付では、許容できる粒度が違います。共有先を先に決めてから、マスクの強さを選んでください。 |
このツールは「公開前の最後のチェック」であって、ログ設計の代わりにはなりません。本質的な対策は、そもそも機密をログに書かないことです — 構造化ログを使い、出力の段階でフィールド単位のマスクを入れてください (多くのロギングライブラリにフィルタの仕組みがあります)。理由は単純で、一度書き出されたログは、ログ集約基盤・バックアップ・監視ツール・アラート通知へと複製されるので、あとから消すのは実質的に不可能だからです。「あとでマスクすればいい」という運用は成り立ちません。あわせて、スクリーンショットには 画像モザイク を使ってください — ただしモザイクやぼかしではなく黒塗りを選ぶこと。そしてこのページの処理はすべてブラウザ内で完結し、入力は送信されません — 開発者ツールの Network タブで確認できます。機密を扱うツールに対しては、この確認を習慣にしてください — 「送信していません」という表示だけを信じる理由はありません。
📖 使い方
-
1
テキストを貼り付けログやスクリーンショット用テキストを入力欄に貼り付けます。
-
2
検出種類とマスク方法を選ぶメール・電話・カード番号など必要なものだけ ON。マスク方法 (***・部分・削除・ラベル) を選択。
-
3
検出してマスクボタンを押すと検出結果一覧とマスク後テキストが表示されます。コピーボタンでクリップボードへ。
❓ よくある質問
テキストはサーバーに送信されますか?
クレジットカード番号の検出精度は?
部分マスクと完全マスクどちらが安全?
🐛 このツールで問題が発生しましたか?
完全無料・登録不要。再現手順だけでも結構です。届いたご報告は運営者に直接届き、修正の参考にします。
ご報告ありがとうございます!
運営者に届きました。改善の参考にさせていただきます。