なぜ危ないのか
HTMLコメントに秘密情報が残る典型的なパターンは三つあります。一つ目はAIへのプロンプトに含めた仕様情報がそのまま出力されるケース、二つ目は開発者がTODOや本番設定の差し替えメモをコメントで残したケース、三つ目は古いバージョンのコードをコメントアウトして残しておいたケースです。どれも意図せず情報が漏れる経路になります。
共有相手が社外のデザイン会社の場合でも、担当者がソースを確認する習慣を持っていれば発見されます。さらに、共有URLがパスワードなしで誰でも閲覧できる状態であれば、検索エンジンやボットによって内容が収集される可能性もあります。コメント内の情報を「見えないから問題ない」と判断するのは誤りです。
- 相手がログインなしで開ける状態か確認する
- PCとスマホで最低1回ずつ表示を確認する
- 内部情報・個人情報・不要な外部送信が残っていないか見る
- レビュー期限と修正時の差し替え方を決めておく
ソースで見る場所
問題になりやすいのは`<head>`内のコメント(ページタイトルの変更指示、API設定の注釈)と、フォーム要素の前後にあるコメント(テスト用のメールアドレスや認証トークン)です。また、JavaScript内のコメント(`//`や`/* */`)にも同様の問題が起きるため、HTMLだけでなくインラインスクリプトの中身も確認対象に含めてください。
DevToolsのElementsパネルでは、コメントノードは薄いグレーで表示されます。ページ全体を対象に調べたい場合は、ブラウザのDevToolsよりもテキストエディタで開いてCtrl+Fで`<!--`を検索するほうが確実です。複数ページで構成されるサイトは全ページを対象にする必要があります。
- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する
安全に共有する設定
共有前の対処として最も安全なのは、HTMLコメントを完全に除去してからアップロードすることです。`html-minifier-terser --remove-comments`を使う方法のほか、Pythonの`html.parser`を使ったカスタムスクリプトで選択的に削除する方法もあります。重要なのは、除去後のファイルを必ずブラウザで表示確認し、デザインや機能に影響がないことを確かめることです。
ギガサイト便などのURL共有サービスを使う際は、コメント除去済みのファイルをアップロードした後、ブラウザのDevToolsでElementsパネルを開いてコメントノードが残っていないことを最終確認します。万が一コメントが残っていた場合は、ファイルを差し替えて新しいURLを発行し直してください。
- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する
再発防止ルール
AIへの指示として「出力したHTMLにコメントを含めるな」と毎回プロンプトに加えるのは煩雑なため、システムプロンプトやテンプレートに永続的に組み込みます。また、コメントを除去するスクリプトをプロジェクトのMakefileやjustfileに登録しておくと、`make clean-html`のような一発コマンドで実行できます。
情報漏えいが発生した際の対応手順もあらかじめ決めておきます。漏えいが疑われる場合は共有URLを即時無効化し、閲覧ログを確認して影響範囲を特定し、関係者へ速やかに報告するフローを文書化しておくと、発生時のパニックを防げます。
- HTML内の外部script・form action・iframeを確認する
- APIキーやトークンらしき文字列がないか検索する
- 画像・CSS・JSのパスが公開後も解決できるか見る
- noindexと認証を混同せず、必要なら両方設定する
よくある質問
HTMLコメントに含まれていたAPIキーが漏えいした場合、どう対処すればよいですか?
まず該当のAPIキーを即時ローテーション(再発行)し、古いキーを無効化します。次に共有URLを無効化してアクセスログを確認し、不正利用の痕跡がないか調べてください。
コメントアウトした古いコードを残しておきたい場合、どうすればよいですか?
バージョン管理システム(Gitなど)のコミット履歴に残す方法を取ります。HTMLファイルからはコメントアウトを削除し、過去のバージョンはgit logで参照できる状態にしておくと安全です。
社外レビュアーに「ソースを見ないでください」と伝えれば問題を防げますか?
技術的な制御なしに口頭での約束のみに依存するのはリスクがあります。相手が悪意を持っていなくてもDevToolsを開く習慣がある場合は目に触れます。削除による技術的対処が必須です。