公開前セキュリティ・チェックリスト
AI で作ったアプリ・Supabase アプリを安全に公開するための実用チェックリスト。shipscan はこの多くを自動化します——URL を貼ると、誰がどのデータに届くかを到達グラフで確認できます。
無料で検査する →すべてのテーブルで RLS を有効に
RLS が無い(またはポリシーが緩い)と、匿名の訪問者が公開 API から全データを読めます。
shipscan が自動で検査RLS ポリシーを所有者で絞る
using (true) のようなポリシーだと、ログイン済みユーザーが他人のデータを読めます。auth.uid() = user_id に。
shipscan が自動で検査service_role キーをクライアントに出さない
service_role は RLS を無視します。ブラウザや公開リポジトリに出ると、誰でも全データにアクセスできます。
shipscan が自動で検査秘密をコミットしない
リポジトリ内の鍵(コミット済み .env 等)は誰でも読め、数分で自動ボットに収集されます。
shipscan が自動で検査/.env や /.git を公開しない
公開状態だと、秘密とソース履歴がそのまま漏れます。
shipscan が自動で検査本番で source map を出さない
公開された .js.map があると、難読化していても誰でも元のソースコードを復元できます。
shipscan が自動で検査初期 HTML に機微データを載せない
__NEXT_DATA__ やサーバ描画の props に埋めたデータは、ログインなしで誰でも読めます。
shipscan が自動で検査RPC / SECURITY DEFINER 関数を絞る
ログインなしで呼べる関数(や定義者権限で動く関数)は、権限チェックが無いと RLS を迂回します。
shipscan が自動で検査Storage バケットを不用意に公開しない
公開バケットは、URL を知る誰もが全ファイルを読めます。
shipscan が自動で検査既知の脆弱性がある依存ライブラリを更新
lockfile にある既知の脆弱性(CVE)は簡単に調べられ、悪用されやすいです。
shipscan が自動で検査HTTPS+セキュリティヘッダで配信
HTTPS / HSTS / CSP が無いと、通信やページが改ざんされやすくなります。
shipscan が自動で検査自動チェックでは見えない箇所を人がレビュー
入力処理(インジェクション)・業務ロジック・サーバ内部の認可は、外部の自動チェックでは見えません。別途レビューを。