Eragina
Erasotzaileek aplikazioaren logika saihestu dezakete datu-baseko erregistroak irakurtzeko, eguneratzeko edo ezabatzeko, errenkada-mailako segurtasuna (RLS) behar bezala ezartzen ez bada [S1]. Honen ondorioz, sarritan, Pertsonalki Identifika daitekeen Informazioa (PII) edo aplikazio-datuak API gako publiko anonimorako sarbidea soilik duten erabiltzaileei agerian jartzen dira.
Arrazoia
Supabase-k Postgres Row Level Security erabiltzen du datu-base mailan datu-sarbidea kudeatzeko, eta hori oinarrizkoa da datuak ziurtatzeko [S1]. Next.js ingurune batean, garatzaileek cookieak eta saioak behar bezala kudeatzen dituzten Supabase bezero bat sortu behar dute, zerbitzariaren aldetik [S2] errendatzean segurtasuna mantentzeko. Ahultasunak normalean gertatzen dira:
- Taulak RLS gaiturik gabe sortzen dira, [S1] gako publikoaren bidez eskuragarri izateko.
- Supabase bezeroa gaizki konfiguratuta dago Next.js-n, erabiltzaileen autentifikazio-tokenak behar bezala pasatzen ez dituen [S2] datu-basera.
- Garatzaileek ustekabean erabiltzen dute
service_rolegakoa bezeroaren alboko kodean, eta horrek RLS gidalerro guztiak saihesten ditu [S1].
Konponketa konkretuak
- Gaitu RLS: Ziurtatu errenkada-mailako segurtasuna gaituta dagoela zure Supabase datu-baseko [S1] taula guztietan.
- Definitu Politikak: Sortu Postgres politika espezifikoak
SELECT,INSERT,UPDATEetaDELETEeragiketetarako sarbidea mugatzeko, erabiltzailearenINSERT4 ZXCVFIX VIBEXTOKVIX erabiltzailearen arabera. - Erabili SSR bezeroak: Ezar ezazu
@supabase/ssrpaketea zerbitzariaren aldeko autentifikazioa eta saioaren iraunkortasuna behar bezala kudeatzen duten Next.js-n bezeroak sortzeko.
FixVibe probak nola egiten dituen
FixVibe-k dagoeneko estaltzen du inplementatutako aplikazioen eta repo kontrolen bidez. baas.supabase-rls modulu pasiboak Supabase URLa eta gako ezohiko bikoteak deskubritzen ditu jatorri bereko JavaScript sortetatik, PostgREST taula publikoko metadatuak eskatzen dizkio eta irakurtzeko soilik aukeraketa mugatuak egiten ditu datu anonimoak esposizioa berresteko, bezeroen datuak aldatu gabe. Repo eskaneatzeek repo.supabase.missing-rls ere exekutatzen dute ENABLE ROW LEVEL SECURITY gabe taula publikoak sortzen dituzten SQL migrazioak markatzeko, eta sekretuek arakatzailera iritsi aurretik zerbitzu-rolen gakoen erakustaldia bilatzen dute.
