セキュリティ

社外レビュー前にAPIキー直書きを検出するチェックリスト

社外レビュー用にAI生成HTMLを渡す前、「APIキーが埋まっていないか」を確かめる手順を体系化したチェックリストです。ブラウザの開発者ツールとテキスト検索だけで実施できるため、専用ツールがない環境でも即日導入できます。

なぜ危ないのか

AIがHTMLを生成する際、プロンプトに含めたAPIキーやサンプルトークンをそのままscriptタグ内に出力することがあります。メールやチャットでファイルを送った瞬間、受信者がブラウザのソースビューを開けばキーが丸見えになり、第三者が同じキーを使ってAPIを不正呼び出しするリスクが生じます。

社外レビューでは相手の環境が統制外のため、ファイルを転送・保存・再共有される可能性が高くなります。キーが漏れた場合の被害は、APIの従量課金超過・データ取得・サービス停止と多岐にわたり、気づいた時点で即ローテーションが必要になるため、送付前の検出が最も低コストな対策です。

  • 相手がログインなしで開ける状態か確認する
  • PCとスマホで最低1回ずつ表示を確認する
  • 内部情報・個人情報・不要な外部送信が残っていないか見る
  • レビュー期限と修正時の差し替え方を決めておく

ソースで見る場所

HTMLファイルをテキストエディタで開き、Ctrl+F(Mac: Command+F)で「key」「token」「secret」「Bearer」「sk-」「AIza」「pk_」を順に検索します。これらの文字列は多くのAPIプロバイダーがキーに使うプレフィックスであり、ヒットした箇所を一つずつ確認して実際のキーが入っていないか判断します。

scriptタグのsrc属性でCDN経由のライブラリを読み込んでいる場合、URLにトークンが付加されていることがあります。例として`https://cdn.example.com/sdk.js?apikey=XXXX`のような形式です。外部URLを全件リストアップし、クエリパラメータにキーが含まれていないか目視確認してください。

  • HTML内の外部script・form action・iframeを確認する
  • APIキーやトークンらしき文字列がないか検索する
  • 画像・CSS・JSのパスが公開後も解決できるか見る
  • noindexと認証を混同せず、必要なら両方設定する

安全に共有する設定

APIキーを含む処理がレビューの本質でない場合、該当のscriptブロックをコメントアウトして「<!-- REVIEW: APIキー省略 -->」と注記するのが最速の対処です。レビュアーに何が削除されたかを伝えることで、デザインや文言だけを確認してもらうフローが整います。

ギガサイト便のようなパスワード保護付き共有URLを使う場合でも、HTMLソース自体にキーが残っていれば受信者がダウンロードして確認できてしまいます。URLレベルの認証とソースの無害化は独立した対策であり、どちらか一方だけでは不十分です。共有前にキーをプレースホルダ文字列(例: `YOUR_API_KEY_HERE`)へ置換してから送付してください。

  • HTML内の外部script・form action・iframeを確認する
  • APIキーやトークンらしき文字列がないか検索する
  • 画像・CSS・JSのパスが公開後も解決できるか見る
  • noindexと認証を混同せず、必要なら両方設定する

再発防止ルール

AIへのプロンプトに「APIキーやシークレット値は一切含めず、変数名のプレースホルダで記述すること」と明示する一文を追加することで、生成段階でキーが混入するリスクを大幅に下げられます。チームのプロンプトテンプレートにこのルールを組み込んでおくと、担当者が変わっても徹底できます。

レビュー送付フローをPullRequestやチケットで管理している場合、送付前チェックリストをテンプレートに組み込み「APIキー検索済み: [ ]」という項目を追加します。チェックが入らないとマージ・送付できない運用にすることで、確認漏れを構造的に防止できます。

  • HTML内の外部script・form action・iframeを確認する
  • APIキーやトークンらしき文字列がないか検索する
  • 画像・CSS・JSのパスが公開後も解決できるか見る
  • noindexと認証を混同せず、必要なら両方設定する

よくある質問

コメントアウトしたAPIキーも漏えいリスクがありますか?

はい、HTMLコメント(<!-- -->)はブラウザのソースビューで誰でも読めるため、コメントアウトだけでは対策になりません。キーを含む行ごと削除するかプレースホルダに置き換えてください。

AIが生成したJavaScriptの中に埋め込まれた場合、どう検出しますか?

インラインscriptタグ内のコードをテキスト検索するのが基本です。難読化・minifyされていない限りキーワード検索で発見できます。難読化されている場合はブラウザの開発者ツールでPretty-printしてから確認します。

キーの漏えいが疑われる場合、最初にすべき対応は何ですか?

まずAPIプロバイダーの管理画面で該当キーを即時無効化(ローテーションまたは削除)します。その後、アクセスログを確認して不正利用の有無を調べ、必要に応じて関係者へ通知します。

関連記事

セキュリティ

APIキー直書きを防ぐAIプロンプトと公開前スキャン

AI生成HTMLへのAPIキー直書きをプロンプト設計で防ぎ、公開前スキャンで二重検出したい開発者・制作担当者向け。具体的なプロンプト文言とgrepコマンドをセットで紹介します。

4分で読める
「セキュリティ」の記事をもっと見る →