FixVibe
Covered by FixVibehigh

Óviðkomandi gagnaaðgangur í gegnum vantar Supabase Row Level Security (RLS)

Í Supabase-studdum forritum byggir gagnaöryggi á Row Level Security (RLS). Ef RLS er ekki sérstaklega virkt og stillt með stefnum, geta allir notendur með opinbera nafnlausa lykilinn lesið, uppfært eða eytt gögnum yfir allan gagnagrunninn. Þetta er sérstaklega mikilvægt í Next.js umhverfi þar sem Supabase viðskiptavinurinn er oft frumstilltur með opinberum API lykli.

CWE-284

Á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.