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.
Gratis, uten registrering. Kun lesing: ingenting i prosjektet ditt endres.
- Koble til SupabaseGodkjenn lesetilgang på supabase.com.
- Vi kjører 45 sjekkerTilgang og RLS, innlogging, lagring og funksjoner, infrastruktur. Bare katalog og innstillinger, aldri radene dine.
- 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.
Laster Supabase-prosjektene dine…
Velg et prosjekt å skanne
20 små bokstaver, som i supabase.com/dashboard/project/din-ref.
Bekreft at du er et menneske
Dette holder automatiske skanninger borte fra tjenesten.
Skanningslogg
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ål | Security Advisor | Denne sjekken |
|---|---|---|
| Hvor den kjører | I Supabase-dashbordet, ett prosjekt om gangen | På denne siden, etter OAuth med kun lesetilgang, for prosjektet du velger |
| Hva den leser | Database-lints | De samme lintene som én sjekk, pluss auth, storage, Edge Functions, sikkerhetskopier og nettverksinnstillinger |
| Hvordan resultatene grupperes | Etter lint | Etter OWASP Top 10:2025, med kategoriene den ikke kan sjekke utpekt |
| Hva du får for å rette | En lenke til lint-dokumentasjonen | SQL eller dashbord-innstillingen for hvert funn, og en prompt til AI-agenten din |
| Hva du kan beholde | Listen i dashbordet ditt | En PDF, eller en delingslenke som utløper etter 7 dager |
Dekning av OWASP Top 10:2025
| Kategori | Sjekker | Status |
|---|---|---|
| A01 Brutt tilgangskontroll | 18 | Dekket |
| A02 Feil sikkerhetskonfigurasjon | 9 | Dekket |
| A03 Svikt i programvareforsyningskjeden | 2 | Delvis Bare Postgres-versjon og utvidelser. npm-avhengigheter ligger i repoet ditt. |
| A04 Kryptografiske feil | 4 | Dekket |
| A05 Injeksjon | 1 | Dekket |
| A06 Usikker design | 0 | Kan ikke sjekkes Usikker design sitter i hvordan appen din fungerer, ikke i innstillinger. |
| A07 Autentiseringsfeil | 8 | Dekket |
| A08 Svikt i integriteten til programvare eller data | 1 | Dekket |
| A09 Svikt i sikkerhetslogging og varsling | 2 | Dekket |
| A10 Feil håndtering av unntakstilstander | 0 | Kan ikke sjekkes Feilhåndtering sitter i appkoden din, som lesetilgang aldri ser. |
Alle 45 sjekker
| Sjekk | ID | OWASP | Verste tilfelle |
|---|---|---|---|
| RLS slått av på eksponerte tabeller | rls_disabled_exposed | A01 | Kritisk |
| Policyer som slipper inn alle rader | policy_always_true | A01 | Høy |
| Policyer som stoler på user metadata | policy_uses_user_metadata | A01 | Høy |
| Skrivepolicyer åpne for anonyme besøkende | anon_write_policies | A01 | Høy |
| Views som omgår RLS | views_without_security_invoker | A01 | Høy |
| Materialiserte views eller eksterne tabeller i API-et | matviews_or_foreign_tables_exposed | A01 | Middels |
| Security definer-funksjoner som kan kalles fra API-et | security_definer_executable | A01 | Høy |
| Storage-policyer åpne for anonyme besøkende | storage_objects_anon_policies | A01 | Høy |
| Offentlige storage-buckets | public_buckets | A01 | Lav |
| Private Realtime-kanaler uten beskyttelse | realtime_messages_rls | A01 | Høy |
| Ubrukte skriverettigheter for anonyme besøkende | anon_table_grants_write | A01 | Lav |
| Roller som omgår RLS | roles_bypass_rls | A01 | Høy |
| Tilgangskolonner innloggede brukere kan endre | authz_columns_writable | A01 | Høy |
| Slett og sett inn igjen endrer en beskyttet kolonne | delete_insert_bypass | A01 | Høy |
| Unødvendige tabellrettigheter for innloggede brukere | authenticated_table_grants_extra | A01 | Lav |
| Standardrettigheter som åpner nye objekter for API-et | default_privileges_api_roles | A01 | Lav |
| Security definer-funksjoner som sjekker current_user | definer_checks_current_user | A01 | Middels |
| Policyer uten rolle eller kommando | policies_without_to_or_for | A01 | Lav |
| Funn fra Supabase Security Advisor | advisor_lints | A02 | Høy |
| Ekstra skjemaer eksponert i Data API | extra_exposed_schemas | A02 | Høy |
| Jokertegn i omdirigerings-URL-er | redirect_wildcards | A02 | Middels |
| Redirect-URL-er over http eller til localhost | insecure_redirect_urls | A02 | Middels |
| Anonym innlogging på | anonymous_signins_enabled | A02 | Middels |
| CAPTCHA av for registrering og innlogging | captcha_disabled | A02 | Middels |
| Databasen er åpen for alle IP-adresser | network_open | A02 | Middels |
| Offentlige buckets uten opplastingsgrenser | public_bucket_no_limits | A02 | Lav |
| Ingen radgrense på svar fra Data API | postgrest_max_rows | A02 | Middels |
| Postgres-oppgradering tilgjengelig | postgres_upgrade_available | A03 | Middels |
| Installerte utvidelser | extensions_listed | A03 | Info |
| SSL håndheves ikke på databasetilkoblinger | ssl_enforcement_off | A04 | Middels |
| Tilgangstokener gyldige lenger enn en time | jwt_expiry_long | A04 | Middels |
| Kolonner som ser sensitive ut, lesbare for anonyme besøkende | sensitive_columns_exposed | A04 | Høy |
| Vault-hemmeligheter som API-rollene kan lese | vault_secrets_exposed | A04 | Kritisk |
| Dynamisk SQL bygget av strenger | dynamic_sql_concat | A05 | Middels |
| Kort minste passordlengde | password_min_length | A07 | Høy |
| Vern mot lekkede passord av | leaked_password_protection_off | A07 | Middels |
| E-postbekreftelse av | email_confirm_off | A07 | Høy |
| Sikker e-postendring av | secure_email_change_off | A07 | Middels |
| Engangskoder gyldige lenger enn en time | otp_expiry_long | A07 | Middels |
| Ingen metode for flerfaktorautentisering på | mfa_unavailable | A07 | Middels |
| Rotasjon av refresh-token av | refresh_token_rotation_off | A07 | Middels |
| Passordbytte uten ny autentisering | password_change_no_reauth | A07 | Lav |
| Edge Functions uten JWT-verifisering | edge_functions_without_jwt | A08 | Lav |
| pgaudit er ikke installert | pgaudit_missing | A09 | Info |
| Ingen sikkerhetskopier funnet | backups_or_pitr | A09 | Middels |
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