Kroken
Å sikre et Supabase-prosjekt krever en flerlags tilnærming med fokus på API nøkkeladministrasjon, databasesikkerhet og lagringstillatelser. [S1] Feilkonfigurert Row Level Security (RLS) eller eksponerte sensitive nøkler kan føre til betydelige dataeksponeringshendelser. [S2] [S3]
Hva endret seg
Denne forskningen konsoliderer kjernesikkerhetskontrollene for Supabase-miljøer basert på offisielle arkitekturretningslinjer. [S1] Den fokuserer på overgangen fra standard utviklingskonfigurasjoner til produksjonsherdede stillinger, spesielt angående tilgangskontrollmekanismer. [S2] [S3]
Hvem er berørt
Applikasjoner som bruker Supabase som en Backend-as-a-Service (BaaS) påvirkes, spesielt de som håndterer brukerspesifikke data eller private eiendeler. [S2] Utviklere som inkluderer service_role-nøkkelen i pakker på klientsiden eller ikke klarer å aktivere RLS, har høy risiko. [S1]
Hvordan problemet fungerer
Supabase utnytter PostgreSQLs Row Level Security for å begrense datatilgang. [S2] Som standard, hvis RLS ikke er aktivert på en tabell, kan enhver bruker med anon-nøkkelen – som ofte er offentlig – få tilgang til alle poster. [S1] På samme måte krever Supabase Storage eksplisitte retningslinjer for å definere hvilke brukere eller roller som kan utføre operasjoner på filsamlinger. [S3]
Hva en angriper får
En angriper som har en offentlig API-nøkkel kan utnytte tabeller som mangler RLS for å lese, endre eller slette data som tilhører andre brukere. [S1] [S2] Uautorisert tilgang til lagringsområder kan føre til eksponering av private brukerfiler eller sletting av kritiske applikasjonsressurser. [S3]
Hvordan FixVibe tester for det
FixVibe dekker nå dette som en del av sine Supabase-sjekker. baas.supabase-security-checklist-backfill vurderer offentlige Supabase-metadata for lagringsbøtte, eksponering av anonym objektliste, navn på sensitiv bøtte og ikke-bundne lagringssignaler fra den offentlige anon-grensen. Relaterte live-sjekker inspiserer tjenesterolle-nøkkeleksponering, Supabase REST/RLS-stilling og SQL-migreringer for depot for manglende RLS.
Hva du skal fikse
Aktiver alltid Row Level Security på databasetabeller og implementer detaljerte retningslinjer for autentiserte brukere. [S2] Sørg for at bare 'anon'-nøkkelen brukes i koden på klientsiden, mens 'service_role'-nøkkelen forblir på serveren. [S1] Konfigurer lagringstilgangskontroll for å sikre at filblokker er private som standard og tilgang kun gis gjennom definerte sikkerhetspolicyer. [S3]
