仕様と根拠
何を見つけるか
リンクの ? から # までをクエリ、# 以降の「名前=値」をフラグメントとして読み、名前が認証情報らしいもの(access_token・id_token・refresh_token・token・api_key・password・secret・session・sid・sig・signature・auth など)を警告にします。名前が一覧になくても、20 文字以上で英字と数字を含み数字が 2 つ以上ある値は「長い乱数様の値」として情報で知らせます。
載せてはいけない理由
MITRE の CWE-598 は、セッション ID・パスワード・アクセストークン・API キーなどをクエリ文字列に含めると、ブラウザの履歴、Referer ヘッダーを通じた外部サイトへの送信、サーバーのログなどに残りうると説明し、対策としてリクエストの本文かヘッダーで送ることを挙げています。
RFC 6750 との関係
OAuth 2.0 のベアラートークンの仕様 RFC 6750 の 2.3 は、access_token をクエリのパラメータで送る方式を SHOULD NOT としており、Authorization ヘッダーや本文で送れない場合に限って使うものとしています。このツールは access_token の警告にその旨を添えます。
根拠にした仕様・資料
| 仕様・資料 | 確認日 | 使った箇所 |
|---|---|---|
| CWE-598: Use of GET Request Method With Sensitive Query Strings(MITRE) | 2026年10月29日 | クエリ文字列の機密情報(セッション ID・パスワード・アクセストークン・API キー)は履歴・Referer・ログに残る。対策は本文かヘッダーで送る |
| RFC 6750 The OAuth 2.0 Bearer Token Usage 2.3 | 2026年10月29日 | access_token をクエリで送る方式は SHOULD NOT(ヘッダーや本文で送れない場合だけ) |
指摘の段階
- エラー: 仕様に反していて、正しく読めない・処理できない入力です。
- 警告: 読めるものの、仕様の推奨に反する・矛盾する・意図と違う結果になりやすい入力です。
- 情報: 誤りではありませんが、知っておくとよい扱い(読み飛ばした部分や解釈)です。
入力の扱い(送信しない仕組み)
処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。
このツールでできないこと(制約)
- 名前の一覧と値の形の条件は、このツールが決めた目安で、規格が定めた一覧ではありません。一覧にない名前や短い値の認証情報は見つかりません。
- 「見つからなかった」ことは安全の保証ではありません。パス部分(/token/abc…)や、暗号化・符号化された値は判定できません。
- 値が本物の認証情報かどうかは判断できません。リンクの先へのアクセスや、値の有効性の確認はしません。
- 見つかった値を無効にする作業(再発行・失効)は行いません。サービスの管理画面で行ってください。
ご利用にあたって
- 一覧にない名前や形の値は見つかりません。見つからなくても、安全だと判断しないでください。
- 本物のトークンを含むリンクを共有してしまった場合は、早めにサービス側で無効化してください。