セキュリティ

社外レビュー前にSupabase anon keyを検出するチェックリスト

社外の協力会社やフリーランサーにHTMLデザインをレビューしてもらう前に、Supabase anon keyが埋め込まれたままになっていないかを確認するのは見落とされがちな工程だ。レビュー依頼のたびに手順を都度考えるのではなく、共有前に消化できるチェックリストとして整備しておく方が確実だ。

なぜ危ないのか

社外のレビュアーは業務委託契約を結んでいても、受け取ったファイルを別の端末で開いたり転送したりする場合がある。HTMLにSupabase anon keyが含まれていると、ファイルが意図しない経路で広まるリスクが生じる。特にRLSが無効なテーブルがある場合、そのanon keyを使えば誰でもデータにアクセスできてしまう。

AI生成のHTMLは生成者が全コードを把握していないことが多く、意図せずkeyが残ることへの気づきが遅れがちだ。社外レビューは多くの場合締め切りが迫った状態で行われるため、「確認する時間がない」まま送信されるケースが現場では多い。こうした状況で漏えいが起きると、対応コストは事前確認の何倍にもなる。

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

ソースで見る場所

チェック1:テキストエディタでHTMLを開き、`eyJ` を全文検索する。ヒットした場合はその文字列がanon keyまたは他のJWTである可能性が高い。ヒット箇所の前後を確認し、`supabase.co` というドメインが近くにあればSupabaseのキーと判断してよい。

チェック2:`supabase` または `.supabase.co` をキーワードに全文検索し、接続コードがどのように記述されているか確認する。`createClient('https://xxxx.supabase.co', 'eyJ...')` の形式で書かれていればURL・keyともにハードコードされている状態だ。どちらか一方でもプレースホルダになっていない場合は、共有前に置換が必要だ。

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

安全に共有する設定

上記2チェックがどちらも「ヒットなし」であれば共有可能な状態だ。ヒットがあった場合は、anon keyとプロジェクトURLをそれぞれ `YOUR_SUPABASE_URL`・`YOUR_SUPABASE_ANON_KEY` に置換してから共有ファイルを作成する。元ファイルはローカルに保存し、共有フォルダには置換済みファイルだけを入れる。

共有方法はファイル直接添付よりもアクセス制限付きのリンク共有が望ましい。ギガサイト便のようにパスワードまたはメール認証が設定できるプレビューサービスを使うと、受け取ったリンクが転送されてもパスワードを知らない人は閲覧できない。共有期間は最低限に絞り、レビュー完了の連絡を受けたらリンクを無効化する。

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

再発防止ルール

チェックリストをNotionやGoogle Docsにテンプレートとして保存し、社外レビューを依頼する都度コピーして使う。「①eyJ検索 ②supabase.co検索 ③置換確認 ④認証設定確認」の4項目をチェックボックスで管理すると、担当者が変わっても同じ水準で確認できる。

定期的(月1回など)にチェックリストの内容を見直し、新たに発見された確認項目があれば追加する。Supabaseの仕様変更でキー形式が変わった場合にも検索パターンを更新する必要があるため、チームのセキュリティ担当者が維持管理する役割を明確にしておくこと。

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

よくある質問

チェックリストをレビュアー本人に渡してセルフチェックさせても効果がありますか?

レビュアーが社外の場合はファイルを受け取る前に送信者側でチェックを完了させるべきだ。セルフチェックは補完的な手段として有効だが、送信者が確認しないまま頼る運用は責任の所在が不明確になるため推奨しない。

チェックに使うテキストエディタは特定のものが必要ですか?

VS Code・Sublime Text・Notepad++などファイル全体を検索できるエディタであれば何でも構わない。ブラウザの「ソースを表示」でCtrl+Fを使う方法でも機能するが、複数ファイルを対象にする場合はエディタの一括検索機能の方が効率的だ。

置換後のHTMLをレビュアーが動作確認しようとするとエラーが出ますが、問題ありませんか?

Supabase接続が動作しないのは想定どおりであり、デザインや構造のレビューには支障がない。動作を含めてレビューしてもらう必要がある場合は、デモ専用の別プロジェクトを用意してそのanon keyを使うか、モックデータで動くスタティックなバージョンを別途用意する。

関連記事

セキュリティ

AI生成HTMLにSupabase anon keyが残っていないか確認する方法

AI生成HTMLにSupabaseのanon keyが残っていないか不安なエンジニアや担当者向け。キーの見つけ方・危険度の評価方法・除去後の確認手順を知ることができ、公開可否を自分で判断できるようになる。

5分で読める
セキュリティ

Supabase anon keyを防ぐAIプロンプトと公開前スキャン

Supabaseのanon keyをAI生成HTMLに含めないためのプロンプト設計と、生成後の自動スキャン方法を知りたい開発者向け。具体的なプロンプト例とコマンドを使って実践的な防止フローを選べる。

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