Áhrif
Misbrestur á að innleiða Row Level Security (RLS) gerir óvottaðum árásarmönnum kleift að spyrjast fyrir um gögn úr Supabase gagnagrunni þegar opinberar töflur eru afhjúpaðar í gegnum ómerkta mörkin [S1]. Vegna þess að Next.js forrit afhjúpa venjulega Supabase anon lykilinn í kóða viðskiptavinarhliðar, getur árásarmaður notað þennan lykil til að hringja beint REST API símtöl í gagnagrunninn og komast framhjá fyrirhuguðum notendaupplýsingum [S2].
Orsök
Sjálfgefið er að Postgres töflur í Supabase krefjast skýrrar virkjunar á Row Level Security til að koma í veg fyrir almennan aðgang [S1]. Þegar þróunaraðili býr til töflu en gleymir að virkja RLS eða tekst ekki að skilgreina takmarkandi reglur, getur gagnagrunnurinn afhjúpað gögn fyrir alla sem hafa anon lykilinn [S1] verkefnisins. Í Next.js forritum krefjast flutningur á miðlarahlið og niðurhal á biðlara einnig vandlega Supabase biðlarauppsetningu svo sannvott notendasamhengi nái til gagnagrunnslagsins [S2].
Steinsteypa lagfæringar
- Virkja RLS: Keyrðu
ALTER TABLE "your_table_name" ENABLE ROW LEVEL SECURITY;fyrir hverja opinbera töflu sem geymir forritagögn [S1]. - Skilgreindu stefnur: Búðu til sérstakar reglur sem takmarka aðgang byggt á auðkenningarstöðu notandans, eins og
CREATE POLICY "Users can see their own data" ON your_table_name FOR SELECT USING (auth.uid() = user_id);[S1]. - Öryggir viðskiptavinir á netþjóni: Þegar þú notar Next.js, hafðu þjónustuhlutverkbiðlara eingöngu miðlara og notaðu samt eignarsíur áður en gögnum er skilað til notenda [S2].
Hvernig FixVibe prófar það
FixVibe keyrir nú þegar skrifvarinn Supabase RLS athugun í gegnum baas.supabase-rls. Skannarinn uppgötvar Supabase verkefnisslóðina og opinberan anon-lykil úr JavaScript búntum af sama uppruna, biður PostgREST um opinber lýsigögn töflunnar og reynir takmarkað skrifvarið val til að staðfesta hvort gögn séu afhjúpuð án notendalotu. Það setur ekki inn, uppfærir, eyðir eða notar skilríki fyrir þjónustuhlutverk. Endurtekningaskannanir geta einnig náð þessu fyrr í gegnum repo.supabase.missing-rls, sem flaggar SQL-flutningar sem búa til opinberar töflur án ENABLE ROW LEVEL SECURITY.
