ClearedToShip
critical

Supabase で行レベルセキュリティ(RLS)を有効化する方法

何が問題か

RLS のない Supabase テーブルは、anon キーを持つ人なら誰でも完全に読み取れます。その anon キーはフロントエンドと一緒に配布されます。RLS を正しく有効化することは、Supabase アプリを安全にするうえで最も重要な唯一のステップです。

ステップ・バイ・ステップ

  1. 1

    すべてのデータテーブルで RLS をオンにする

    Supabase のダッシュボードで、各テーブルの行レベルセキュリティを有効にしてください。一度有効化してポリシーがなければ、アクセスはデフォルトで拒否されます。まさに望ましい状態です。

  2. 2

    ユーザーにスコープされた SELECT ポリシーを追加する

    次のようなポリシーを作成してください:CREATE POLICY "own rows" ON your_table FOR SELECT USING (auth.uid() = user_id);

  3. 3

    INSERT/UPDATE/DELETE についても繰り返す

    各操作には、それぞれ専用のポリシーが必要です。書き込みには WITH CHECK を使い、ユーザーが所有すべきでない行を書き込めないようにしてください。

  4. 4

    認証済みアクセスと匿名アクセスの両方をテストする

    匿名リクエストが何も返さず、認証済みユーザーが自分の行だけを見られることを確認してください。

修正するだけでなく、検証もしてほしいですか?

修正は第一歩にすぎません。ClearedToShip のレビューなら、修正が本当に有効かを確認し、ローンチのための署名入り・保険付きのクリアランスを発行します。早期アクセスに参加:

無料ローンチ準備スキャン
無料スキャンを受ける