Supabase Storage RLSポリシーの穴: 安全性を確保するために知っておきたいこと
Supabase StorageのRLS(Row Level Security)ポリシーの設定には、意図しないセキュリティホールが存在します。このRLSポリシーの問題は、CREATE POLICY ... FOR SELECT TO authenticated のように、TO句が明示されていない場合に発生します。この場合、「authenticated」と命名されていても、実際には未ログイン状態のユーザーがanonロールによってアクセス可能になってしまうという問題です。
これはSQLのデフォルト動作に起因しており、TO句を省略した状態ではpublicロール、つまり未認証のユーザーにも適用されてしまうのです。2026年9月16日には個人開発者によってこの問題が発見されており、実際にanonキーのみでファイル一覧が表示できることが確認されています。
解決策としては、RLSポリシーの作成時に必ず TO authenticated や TO anon を明示的に記述することが重要です。修正手順については、個人開発者がZennに投稿した記事(https://zenn.dev/taski_app/articles/07-supabase-storage-security-hole)を参考にしてください。
この問題を未然に防ぐためには、テスト環境でanonとauthenticated両方のキーを使って十分な検証を行うことが必要です。公式ドキュメントでの確認が難しい場合もあるため、独自にベストプラクティスを構築することが重要です。
参考リンク
著者について
著者について
コメント
コメントを読み込んでいます
会話の履歴を取得しています。
U