Hopp til innhold

Sjekk Supabase-prosjektet ditt mot 45 OWASP Top 10:2025-regler og mer

Koble til ett prosjekt med kun lesetilgang og få en rapport med karakter og en rettelse for hvert funn, rett på denne siden.

For team som bygger med Lovable, Bolt, Cursor eller v0 på Supabase. Gratis, uten registrering.

Sjekk Supabase-prosjektet mitt

Gratis, uten registrering. Kun lesing: ingenting i prosjektet ditt endres.

  1. Koble til SupabaseGodkjenn lesetilgang på supabase.com.
  2. Vi kjører 45 sjekkerTilgang og RLS, innlogging, lagring og funksjoner, infrastruktur. Bare katalog og innstillinger, aldri radene dine.
  3. Rapport og en prompt til AI-agenten dinEn rettelse for hvert funn pluss en prompt du limer inn i Cursor, Claude Code eller Lovable. Lagres bare hvis du deler den.

Hva sjekken kan se

Vi leser

  • Databasekatalogen: tabeller, RLS-flagg, policyer, rettigheter, views, funksjoner, utvidelser, roller og hvem som kan lese Vault
  • Auth-innstillinger: passordregler, e-postbekreftelse, MFA, omdirigerings-URL-er
  • Storage: listen over buckets, hvilke som er offentlige og grensene deres for størrelse og filtype
  • Edge Functions: listen og JWT-innstillingen for hver enkelt
  • Prosjektinnstillinger: Postgres-versjon, sikkerhetskopier, SSL, nettverksbegrensninger, radgrense i Data API

Vi leser aldri

  • Rader i tabellene dine
  • API-nøkler og hemmeligheter: Supabase tar med noen i svar om innstillinger, og skanningen forkaster dem straks de kommer, uten å lagre, logge eller vise dem
  • Filer som ligger i bucketene dine
  • Appkoden og repoet ditt

En rapport lagres bare når du lager en delingslenke, i høyst 7 dager. Tilgangen trekkes tilbake rett etter sjekken.

Hva lesetilgang ikke kan sjekke

  • A06 Usikker design og A10 Feil håndtering av unntakstilstander sitter i appkoden din, ikke i prosjektinnstillinger.
  • Frontend-avhengigheter (npm-delen av A03) og en service_role-nøkkel som ligger i frontend-koden. Sjekk repoet ditt for disse.
  • Tilgangsregler som bare finnes i appkode eller Edge Functions, for eksempel en sjekk av plan = 'pro' i frontend. Skanningen ser bare kolonner som databasen selv bruker i policyer, funksjoner og auth hooks, så et godkjent resultat for skrivbare tilgangskolonner betyr ikke at de kolonnene er trygge.
  • Om én innlogget bruker kan lese en annen brukers rader. Det krever en test med to ekte brukere: slik tester du Supabase RLS

Supabase Security Advisor og denne sjekken

SpørsmålSecurity AdvisorDenne sjekken
Hvor den kjørerI Supabase-dashbordet, ett prosjekt om gangenPå denne siden, etter OAuth med kun lesetilgang, for prosjektet du velger
Hva den leserDatabase-lintsDe samme lintene som én sjekk, pluss auth, storage, Edge Functions, sikkerhetskopier og nettverksinnstillinger
Hvordan resultatene grupperesEtter lintEtter OWASP Top 10:2025, med kategoriene den ikke kan sjekke utpekt
Hva du får for å retteEn lenke til lint-dokumentasjonenSQL eller dashbord-innstillingen for hvert funn, og en prompt til AI-agenten din
Hva du kan beholdeListen i dashbordet dittEn PDF, eller en delingslenke som utløper etter 7 dager

Dekning av OWASP Top 10:2025

KategoriSjekkerStatus
A01 Brutt tilgangskontroll18Dekket
A02 Feil sikkerhetskonfigurasjon9Dekket
A03 Svikt i programvareforsyningskjeden2Delvis Bare Postgres-versjon og utvidelser. npm-avhengigheter ligger i repoet ditt.
A04 Kryptografiske feil4Dekket
A05 Injeksjon1Dekket
A06 Usikker design0Kan ikke sjekkes Usikker design sitter i hvordan appen din fungerer, ikke i innstillinger.
A07 Autentiseringsfeil8Dekket
A08 Svikt i integriteten til programvare eller data1Dekket
A09 Svikt i sikkerhetslogging og varsling2Dekket
A10 Feil håndtering av unntakstilstander0Kan ikke sjekkes Feilhåndtering sitter i appkoden din, som lesetilgang aldri ser.

Alle 45 sjekker

SjekkIDOWASPVerste tilfelle
RLS slått av på eksponerte tabellerrls_disabled_exposedA01Kritisk
Policyer som slipper inn alle raderpolicy_always_trueA01Høy
Policyer som stoler på user metadatapolicy_uses_user_metadataA01Høy
Skrivepolicyer åpne for anonyme besøkendeanon_write_policiesA01Høy
Views som omgår RLSviews_without_security_invokerA01Høy
Materialiserte views eller eksterne tabeller i API-etmatviews_or_foreign_tables_exposedA01Middels
Security definer-funksjoner som kan kalles fra API-etsecurity_definer_executableA01Høy
Storage-policyer åpne for anonyme besøkendestorage_objects_anon_policiesA01Høy
Offentlige storage-bucketspublic_bucketsA01Lav
Private Realtime-kanaler uten beskyttelserealtime_messages_rlsA01Høy
Ubrukte skriverettigheter for anonyme besøkendeanon_table_grants_writeA01Lav
Roller som omgår RLSroles_bypass_rlsA01Høy
Tilgangskolonner innloggede brukere kan endreauthz_columns_writableA01Høy
Slett og sett inn igjen endrer en beskyttet kolonnedelete_insert_bypassA01Høy
Unødvendige tabellrettigheter for innloggede brukereauthenticated_table_grants_extraA01Lav
Standardrettigheter som åpner nye objekter for API-etdefault_privileges_api_rolesA01Lav
Security definer-funksjoner som sjekker current_userdefiner_checks_current_userA01Middels
Policyer uten rolle eller kommandopolicies_without_to_or_forA01Lav
Funn fra Supabase Security Advisoradvisor_lintsA02Høy
Ekstra skjemaer eksponert i Data APIextra_exposed_schemasA02Høy
Jokertegn i omdirigerings-URL-erredirect_wildcardsA02Middels
Redirect-URL-er over http eller til localhostinsecure_redirect_urlsA02Middels
Anonym innlogging påanonymous_signins_enabledA02Middels
CAPTCHA av for registrering og innloggingcaptcha_disabledA02Middels
Databasen er åpen for alle IP-adressernetwork_openA02Middels
Offentlige buckets uten opplastingsgrenserpublic_bucket_no_limitsA02Lav
Ingen radgrense på svar fra Data APIpostgrest_max_rowsA02Middels
Postgres-oppgradering tilgjengeligpostgres_upgrade_availableA03Middels
Installerte utvidelserextensions_listedA03Info
SSL håndheves ikke på databasetilkoblingerssl_enforcement_offA04Middels
Tilgangstokener gyldige lenger enn en timejwt_expiry_longA04Middels
Kolonner som ser sensitive ut, lesbare for anonyme besøkendesensitive_columns_exposedA04Høy
Vault-hemmeligheter som API-rollene kan lesevault_secrets_exposedA04Kritisk
Dynamisk SQL bygget av strengerdynamic_sql_concatA05Middels
Kort minste passordlengdepassword_min_lengthA07Høy
Vern mot lekkede passord avleaked_password_protection_offA07Middels
E-postbekreftelse avemail_confirm_offA07Høy
Sikker e-postendring avsecure_email_change_offA07Middels
Engangskoder gyldige lenger enn en timeotp_expiry_longA07Middels
Ingen metode for flerfaktorautentisering påmfa_unavailableA07Middels
Rotasjon av refresh-token avrefresh_token_rotation_offA07Middels
Passordbytte uten ny autentiseringpassword_change_no_reauthA07Lav
Edge Functions uten JWT-verifiseringedge_functions_without_jwtA08Lav
pgaudit er ikke installertpgaudit_missingA09Info
Ingen sikkerhetskopier funnetbackups_or_pitrA09Middels

Spørsmål

Hva skiller dette fra Supabase Security Advisor?

Resultatene fra Security Advisor er én av sjekkene. Skanningen legger til auth-innstillinger, storage-policyer, Edge Functions, sikkerhetskopier og nettverksinnstillinger, grupperer alt etter OWASP Top 10:2025 og gir en rettelse for hvert funn.

Er Supabase sikkert som standard?

Plattformen vedlikeholdes av Supabase, men tilgangsreglene er dine. En ny tabell opprettet med ren SQL har Row Level Security slått av, og en policy skrevet som using (true) lar hvem som helst med anon-nøkkelen lese tabellen. Skanningen ser etter nettopp disse innstillingene.

Hva betyr “RLS disabled”, og hvordan slår jeg det på?

Med RLS slått av på en tabell i et eksponert skjema kan hvem som helst med anon-nøkkelen din lese hver rad via Data API. Slå det på med alter table public.din_tabell enable row level security; og legg deretter til policyer for den tilgangen du vil ha.

Er det trygt at Supabase anon-nøkkelen min ligger i nettleseren?

Ja, anon-nøkkelen (publishable) er ment å være offentlig. Den kan bare gjøre det rettighetene og RLS-policyene dine tillater, og derfor sjekker skanningen akkurat dem. Nøkkelen service_role omgår RLS og må aldri havne i nettleseren.

Sjekk ditt eget prosjekt

Gratis og kun lesing. Rapporten vises på denne siden.

Sjekk Supabase-prosjektet mitt