Impattu
A fallimentu di implementà a Seguretat di Livellu di Fila (RLS) permette à l'attaccanti micca autenticati di dumandà dati da una basa di dati Supabase quandu e tavule pubbliche sò esposte attraversu u cunfini anon [S1]. Perchè l'applicazioni Next.js tipicamente espone a chjave Supabase anon in u codice di u cliente, un attaccante pò aduprà sta chjave per fà REST direttu API chjamate l'accessu à l'infurmazioni sensibili di l'utilizatori, l'accessu à l'informazioni sensibili di l'utilizatori è l'accessu à l'infurmazioni sensibili di l'utilizatori. [S2].
Causa Root
Per automaticamente, i tavulini Postgres in Supabase necessitanu attivazione esplicita di Row Level Security per impedisce l'accessu publicu [S1]. Quandu un sviluppatore crea una tavula, ma si scurda di attivà RLS o ùn riesce à definisce e pulitiche restrittive, a basa di dati pò espose dati à qualchissia chì pussede a chjave anon di u prughjettu [S1]. In l'applicazioni Next.js, u rendering di u servitore è u latu di u cliente necessitanu ancu una cunfigurazione di u cliente Supabase per chì u cuntestu autenticatu di l'utilizatori ghjunghje à a capa di basa di dati [S2].
Correzioni Concrete
- Abilita RLS: Eseguite
ALTER TABLE "your_table_name" ENABLE ROW LEVEL SECURITY;per ogni tavula publica chì guarda i dati di l'app [S1]. - Define Policies: Crea pulitiche specifiche chì limitanu l'accessu basatu annantu à u statu di autentificazione di l'utilizatori, cum'è
CREATE POLICY "Users can see their own data" ON your_table_name FOR SELECT USING (auth.uid() = user_id);[S1]. - Clienti Secure Server-Side: Quandu si usa Next.js, mantene i clienti di u rolu di serviziu solu per u servitore è ancu applicà i filtri di pruprietà prima di rinvià e dati à l'utilizatori [S2].
Cumu FixVibe prova per questu
FixVibe esegue già una verifica di sola lettura Supabase RLS attraversu baas.supabase-rls. U scanner scopre l'URL di u prugettu Supabase è a chjave pubblica anonima da i pacchetti JavaScript di listessa origine, dumanda à PostgREST per i metadati di a tavula publica, è prova selezioni limitate di sola lettura per cunfirmà se e dati sò esposti senza una sessione d'utilizatore. Ùn inserisce, aghjurnà, sguassate o utilizate credenziali di u rolu di serviziu. Repo scans ponu ancu catturà questu prima attraversu repo.supabase.missing-rls, chì marca migrazioni SQL chì creanu tavule publiche senza ENABLE ROW LEVEL SECURITY.
