Impakt
Feeler bei der Ëmsetzung vun der Row Level Security (RLS) erlaabt onauthentifizéiert Ugräifer Daten aus enger Supabase Datebank ze froen wann ëffentlech Dëscher duerch d'anon Grenz [S1] ausgesat sinn. Well Next.js Uwendungen typesch den Supabase anon Schlëssel am Client-Säit Code aussetzen, kann en Ugräifer dëse Schlëssel benotzen fir direkt REST API Uruff un d'Datebank ze maachen, andeems hien déi virgesinn sensibel Benotzerinformatioun ëmgoen an déi beabsichtigt sensibel Benotzerinformatioun ëmgoen. [S2].
Root Ursaach
Par défaut erfuerderen Postgres Dëscher an Supabase explizit Aktivatioun vun der Row Level Security fir den ëffentlechen Zougang [S1] ze verhënneren. Wann en Entwéckler en Dësch erstellt, awer vergiess RLS z'aktivéieren oder net restriktiv Politik ze definéieren, kann d'Datebank Daten op jidderengem ausstellen, deen den anon-Schlëssel [S1] vum Projet besëtzt. An Next.js Uwendungen, Server-Säit Rendering a Client-Säit Erhalen erfuerderen och virsiichteg Supabase Client Setup sou datt authentifizéierte Benotzerkontext d'Datebankschicht [S2] erreecht.
Beton Fixes
- Aktivéiert RLS: Ausféieren
ALTER TABLE "your_table_name" ENABLE ROW LEVEL SECURITY;fir all ëffentlechen Dësch datt App Daten Butteker [S1]. - Definéieren Politiken: Schafen spezifesch Politik datt Zougang baséiert op der Authentifikatioun Status vum Benotzer beschränken, wéi
CREATE POLICY "Users can see their own data" ON your_table_name FOR SELECT USING (auth.uid() = user_id);[S1]. - Séchert Server-Säit Clienten: Wann Dir Next.js benotzt, halen Service-Roll Clienten Server-nëmmen an nach Proprietairen Filtere gëlle virun Donnéeën ze Benotzer [S2] zréck.
Wéi FixVibe Tester fir et
FixVibe leeft schonn e liesen-nëmmen Supabase RLS kontrolléieren duerch baas.supabase-rls. De Scanner entdeckt den Supabase Projet URL an den ëffentlechen Anon Schlëssel aus JavaScript-Bündles mat selweschten Hierkonft, freet PostgREST fir ëffentlech Tabelle Metadaten, a probéiert limitéiert Lies-nëmmen Selektiounen fir ze bestätegen ob Daten ouni Benotzersitzung ausgesat sinn. Et setzt net an, aktualiséiert, läscht oder benotzt Service-Roll Umeldungsinformatiounen. Repo Scans kënnen dëst och fréier duerch repo.supabase.missing-rls opfänken, wat SQL Migratiounen markéiert déi ëffentlech Dëscher erstellen ouni ENABLE ROW LEVEL SECURITY.
