Gå til indhold

Tjek dit Supabase-projekt mod 45 OWASP Top 10:2025-regler og mere

Forbind ét projekt med læseadgang, og få en bedømt rapport med en rettelse til hvert fund, lige på denne side.

Til teams, der bygger med Lovable, Bolt, Cursor eller v0 på Supabase. Gratis, uden tilmelding.

Tjek mit Supabase-projekt

Gratis, uden tilmelding. Kun læseadgang: intet i dit projekt ændres.

  1. Forbind SupabaseGodkend læseadgang på supabase.com.
  2. Vi kører 45 tjekAdgang og RLS, login, storage og funktioner, infrastruktur. Kun katalog og indstillinger, aldrig dine rækker.
  3. Rapport og en prompt til din AI-agentEn rettelse til hvert fund plus en prompt, du indsætter i Cursor, Claude Code eller Lovable. Gemmes kun, hvis du deler den.

Hvad tjekket kan se

Vi læser

  • Databasekatalog: tabeller, RLS-flag, politikker, rettigheder, views, funktioner, extensions, roller og hvem der må læse Vault
  • Auth-indstillinger: regler for adgangskoder, e-mailbekræftelse, MFA, redirect-URL’er
  • Storage: listen over buckets, hvilke der er offentlige, og deres grænser for størrelse og filtyper
  • Edge Functions: listen og JWT-indstillingen for hver enkelt
  • Projektindstillinger: Postgres-version, backups, SSL, netværksbegrænsninger, rækkeloft i Data API

Vi læser aldrig

  • Rækker i dine tabeller
  • API-nøgler og hemmeligheder: Supabase tager nogle med i svar om indstillinger, og scanningen kasserer dem ved ankomsten uden at gemme, logge eller vise dem
  • Filer gemt i dine buckets
  • Din app-kode og dit repository

En rapport gemmes kun, når du opretter et delingslink, og højst i 7 dage. Adgangen tilbagekaldes lige efter tjekket.

Hvad læseadgang ikke kan tjekke

  • A06 Usikkert design og A10 Forkert håndtering af ekstraordinære forhold ligger i din app-kode, ikke i projektindstillinger.
  • Frontend-afhængigheder (npm-delen af A03) og en service_role-nøgle, der er bundtet i frontend-kode. Tjek dit repository for dem.
  • Adgangsregler, der kun findes i app-kode eller Edge Functions, som et tjek af plan = 'pro' i frontenden. Skanningen ser kun kolonner, som databasen selv bruger i politikker, funktioner og auth hooks, så et bestået tjek af skrivbare adgangskolonner betyder ikke, at de kolonner er sikre.
  • Om én indlogget bruger kan læse en anden brugers rækker. Det kræver en test med to rigtige brugere: sådan tester du Supabase RLS

Supabase Security Advisor og dette tjek

SpørgsmålSecurity AdvisorDette tjek
Hvor det kørerI Supabase-dashboardet, ét projekt ad gangenPå denne side, efter OAuth med læseadgang, for det projekt, du vælger
Hvad det læserDatabase-lintsDe samme lints som ét tjek, plus auth, storage, Edge Functions, backups og netværksindstillinger
Hvordan resultaterne grupperesEfter lintEfter OWASP Top 10:2025, med de kategorier, der ikke kan tjekkes, nævnt
Hvad du får til at rette detEt link til lint-dokumentationenSQL eller dashboard-indstillingen for hvert fund og en prompt til din AI-agent
Hvad du kan gemmeListen i dit dashboardEn PDF eller et delingslink, der udløber efter 7 dage

Dækning af OWASP Top 10:2025

KategoriTjekStatus
A01 Brudt adgangskontrol18Dækket
A02 Sikkerhedsfejlkonfiguration9Dækket
A03 Fejl i softwarens forsyningskæde2Delvist Kun Postgres-version og extensions. npm-afhængigheder ligger i dit repository.
A04 Kryptografiske fejl4Dækket
A05 Injektion1Dækket
A06 Usikkert design0Kan ikke tjekkes Usikkert design ligger i, hvordan din app fungerer, ikke i indstillinger.
A07 Fejl i autentificering8Dækket
A08 Fejl i software- eller dataintegritet1Dækket
A09 Fejl i sikkerhedslogning og alarmering2Dækket
A10 Forkert håndtering af ekstraordinære forhold0Kan ikke tjekkes Fejlhåndtering ligger i din app-kode, som læseadgang aldrig ser.

Alle 45 tjek

TjekIDOWASPVærste tilfælde
RLS slået fra på eksponerede tabellerrls_disabled_exposedA01Kritisk
Politikker, der tillader alle rækkerpolicy_always_trueA01Høj
Politikker, der stoler på brugermetadatapolicy_uses_user_metadataA01Høj
Skrivepolitikker åbne for anonyme besøgendeanon_write_policiesA01Høj
Views, der omgår RLSviews_without_security_invokerA01Høj
Materialized views eller foreign tables i API’etmatviews_or_foreign_tables_exposedA01Middel
Security definer-funktioner, der kan kaldes fra API’etsecurity_definer_executableA01Høj
Storage-politikker åbne for anonyme besøgendestorage_objects_anon_policiesA01Høj
Offentlige storage-bucketspublic_bucketsA01Lav
Private Realtime-kanaler uden beskyttelserealtime_messages_rlsA01Høj
Ubrugte skriverettigheder til anonyme besøgendeanon_table_grants_writeA01Lav
Roller, der omgår RLSroles_bypass_rlsA01Høj
Adgangskolonner, som indloggede brugere kan ændreauthz_columns_writableA01Høj
Slet og indsæt igen ændrer en beskyttet kolonnedelete_insert_bypassA01Høj
Unødvendige tabelrettigheder for indloggede brugereauthenticated_table_grants_extraA01Lav
Standardrettigheder, der åbner nye objekter for API’etdefault_privileges_api_rolesA01Lav
Security definer-funktioner, der tjekker current_userdefiner_checks_current_userA01Middel
Politikker uden rolle eller kommandopolicies_without_to_or_forA01Lav
Fund fra Supabase Security Advisoradvisor_lintsA02Høj
Ekstra schemas eksponeret i Data APIextra_exposed_schemasA02Høj
Jokertegn i redirect-URL’erredirect_wildcardsA02Middel
Redirect-URL’er over http eller til localhostinsecure_redirect_urlsA02Middel
Anonym login slået tilanonymous_signins_enabledA02Middel
CAPTCHA slået fra ved tilmelding og logincaptcha_disabledA02Middel
Database åben for alle IP-adressernetwork_openA02Middel
Offentlige buckets uden upload-grænserpublic_bucket_no_limitsA02Lav
Intet rækkeloft på svar fra Data APIpostgrest_max_rowsA02Middel
Postgres-opgradering tilgængeligpostgres_upgrade_availableA03Middel
Installerede extensionsextensions_listedA03Info
SSL kræves ikke ved databaseforbindelserssl_enforcement_offA04Middel
Adgangstokens gyldige i mere end en timejwt_expiry_longA04Middel
Følsomt udseende kolonner, som anonyme besøgende kan læsesensitive_columns_exposedA04Høj
Vault-hemmeligheder læsbare for API-rollervault_secrets_exposedA04Kritisk
Dynamisk SQL bygget af strengedynamic_sql_concatA05Middel
Kort minimumslængde for adgangskoderpassword_min_lengthA07Høj
Beskyttelse mod lækkede adgangskoder slået fraleaked_password_protection_offA07Middel
E-mailbekræftelse slået fraemail_confirm_offA07Høj
Sikker e-mailændring slået frasecure_email_change_offA07Middel
Engangskoder gyldige i mere end en timeotp_expiry_longA07Middel
Ingen multifaktormetode slået tilmfa_unavailableA07Middel
Rotation af refresh tokens slået frarefresh_token_rotation_offA07Middel
Skift af adgangskode uden ny godkendelsepassword_change_no_reauthA07Lav
Edge Functions uden JWT-verifikationedge_functions_without_jwtA08Lav
pgaudit er ikke installeretpgaudit_missingA09Info
Ingen backups fundetbackups_or_pitrA09Middel

Spørgsmål

Hvordan adskiller det sig fra Supabase Security Advisor?

Resultaterne fra Security Advisor er ét af tjekkene. Skanningen tilføjer auth-indstillinger, storage-politikker, Edge Functions, backups og netværksindstillinger, grupperer alt efter OWASP Top 10:2025 og giver en rettelse til hvert fund.

Er Supabase sikkert som standard?

Platformen vedligeholdes af Supabase, men adgangsreglerne er dine. En ny tabel oprettet med almindelig SQL har Row Level Security slået fra, og en politik skrevet som using (true) lader alle med anon-nøglen læse tabellen. Skanningen leder netop efter disse indstillinger.

Hvad betyder »RLS disabled«, og hvordan slår jeg det til?

Når RLS er slået fra på en tabel i et eksponeret schema, kan alle med din anon-nøgle læse hver eneste række via Data API. Slå det til med alter table public.your_table enable row level security; og tilføj derefter politikker for den adgang, du ønsker.

Er det sikkert, at min Supabase anon-nøgle ligger i browseren?

Ja, anon-nøglen (publishable) er beregnet til at være offentlig. Den kan kun det, som dine rettigheder og RLS-politikker tillader, og derfor tjekker skanningen dem. Nøglen service_role omgår RLS og må aldrig nå browseren.

Tjek dit eget projekt

Gratis og med læseadgang. Rapporten vises på denne side.

Tjek mit Supabase-projekt