Impakt
Ugräifer kënnen d'Applikatiounslogik ëmgoen fir records an der Datebank ze liesen, ze aktualiséieren oder ze läschen, wann d'Row Level Security (RLS) net richteg duerchgesat gëtt [S1]. Dëst féiert dacks zu der Belaaschtung vu Perséinlech Identifizéierbar Informatioun (PII) oder sensibel Uwendungsdaten fir Benotzer déi nëmmen Zougang zum ëffentlechen anonyme API Schlëssel hunn.
Root Ursaach
Supabase benotzt Postgres Row Level Security fir den Datezougang um Datebankniveau ze verwalten, wat fundamental ass fir Daten [S1] ze sécheren. An engem Next.js Ëmfeld mussen d'Entwéckler en Supabase Client erstellen deen Cookien a Sessiounen korrekt handhabt fir d'Sécherheet während der Server-Säit Rendering [S2] z'erhalen. Schwachstelle entstinn normalerweis wann:
- Dëscher sinn geschaf ouni RLS aktivéiert, mécht se zougänglech iwwer den ëffentlechen anon Schlëssel [S1].
- Den Supabase Client ass falsch konfiguréiert an Next.js, net korrekt d'Benotzer Authentifikatioun Tokens un d'Datebank [S2] weiderginn.
- Entwéckler benotzen zoufälleg der
service_roleSchlëssel am Client-Säit Code, déi Ëmgank all RLS Politiken [S1].
Beton Fixes
- RLS aktivéieren: Suergen, datt Row Level Sécherheet fir all Dësch an Ärer Supabase Datebank [S1] aktivéiert ass.
- Politik definéieren: Schafen spezifesch Postgres Politik fir
SELECT,INSERT,UPDATE, anDELETEOperatiounen fir Zougang zu limitéiert Zougang baséiert op de Benotzer UID ZXCVZVIXBETOKEN. - Benotzen SSR Clienten: Ëmsetzen der
@supabase/ssrPak Clienten an Next.js schafen déi Server-Säit Authentifikatioun an Sëtzung Persistenz korrekt verwalten [S2].
Wéi FixVibe Tester fir et
FixVibe deckt dëst schonn duerch ofgesat-App a Repo Kontrollen. De passive baas.supabase-rls Modul entdeckt Supabase URL an anon-Schlësselpairen aus selweschten Hierkonft JavaScript Bündel, freet PostgREST fir ëffentlech Tabell Metadaten, a mécht limitéiert Lies-nëmme Selektiounen fir anonym Datenbelaaschtung ze bestätegen ouni Clientdaten ze mutéieren. Repo Scans lafen och repo.supabase.missing-rls fir SQL Migratiounen ze markéieren déi ëffentlech Dëscher erstellen ouni ENABLE ROW LEVEL SECURITY, a geheime Scans sichen no Service-Roll Schlësselbelaaschtung ier se de Browser erreecht.
