critical
Supabase で行レベルセキュリティ(RLS)を有効化する方法
何が問題か
RLS のない Supabase テーブルは、anon キーを持つ人なら誰でも完全に読み取れます。その anon キーはフロントエンドと一緒に配布されます。RLS を正しく有効化することは、Supabase アプリを安全にするうえで最も重要な唯一のステップです。
ステップ・バイ・ステップ
- 1
すべてのデータテーブルで RLS をオンにする
Supabase のダッシュボードで、各テーブルの行レベルセキュリティを有効にしてください。一度有効化してポリシーがなければ、アクセスはデフォルトで拒否されます。まさに望ましい状態です。
- 2
ユーザーにスコープされた SELECT ポリシーを追加する
次のようなポリシーを作成してください:CREATE POLICY "own rows" ON your_table FOR SELECT USING (auth.uid() = user_id);
- 3
INSERT/UPDATE/DELETE についても繰り返す
各操作には、それぞれ専用のポリシーが必要です。書き込みには WITH CHECK を使い、ユーザーが所有すべきでない行を書き込めないようにしてください。
- 4
認証済みアクセスと匿名アクセスの両方をテストする
匿名リクエストが何も返さず、認証済みユーザーが自分の行だけを見られることを確認してください。
修正するだけでなく、検証もしてほしいですか?
修正は第一歩にすぎません。ClearedToShip のレビューなら、修正が本当に有効かを確認し、ローンチのための署名入り・保険付きのクリアランスを発行します。早期アクセスに参加: