Vai al contenuto

Controlli il suo progetto Supabase con 45 regole OWASP Top 10:2025 e altre

Colleghi un progetto in sola lettura e ottenga un report con voto e la correzione per ogni problema, direttamente in questa pagina.

Per i team che sviluppano con Lovable, Bolt, Cursor o v0 su Supabase. Gratis, senza registrazione.

Controlla il mio progetto Supabase

Gratis, senza registrazione. In sola lettura: nel suo progetto non viene modificato nulla.

  1. Collegare SupabaseApprovi l’accesso in sola lettura su supabase.com.
  2. Eseguiamo 45 controlliAccesso e RLS, login, storage e funzioni, infrastruttura. Solo catalogo e impostazioni, mai le sue righe.
  3. Report e un prompt per il suo agente AIUna correzione per ogni problema e un prompt da incollare in Cursor, Claude Code o Lovable. Salvato solo se lo condivide.

Cosa può vedere il controllo

Leggiamo

  • Catalogo del database: tabelle, flag RLS, policy, grant, view, funzioni, estensioni, ruoli e chi può leggere il Vault
  • Impostazioni auth: regole delle password, conferma dell’email, MFA, URL di reindirizzamento
  • Storage: l’elenco dei bucket, quali sono pubblici e i loro limiti di dimensione e tipo di file
  • Edge Functions: l’elenco e l’impostazione JWT di ciascuna
  • Impostazioni del progetto: versione di Postgres, backup, SSL, restrizioni di rete, limite di righe della Data API

Non leggiamo mai

  • Le righe delle sue tabelle
  • Chiavi API e secret: Supabase ne include alcuni nelle risposte delle impostazioni, e la scansione li scarta appena arrivano, senza archiviarli, registrarli né mostrarli
  • I file salvati nei suoi bucket
  • Il codice della sua app e il suo repository

Un report viene salvato solo quando crea un link di condivisione, per 7 giorni al massimo. L’accesso concesso viene revocato subito dopo il controllo.

Cosa l’accesso in lettura non può verificare

  • A06 Progettazione insicura e A10 Gestione errata delle condizioni eccezionali stanno nel codice della sua app, non nelle impostazioni del progetto.
  • Le dipendenze del frontend (la parte npm di A03) e una chiave service_role inclusa nel codice del frontend. Le verifichi nel suo repository.
  • Le regole di accesso che esistono solo nel codice dell’app o nelle Edge Functions, come un controllo plan = 'pro' nel frontend. L’analisi vede solo le colonne che il database stesso usa in policy, funzioni e auth hook, quindi un esito positivo sulle colonne di accesso modificabili non significa che quelle colonne siano sicure.
  • Se un utente autenticato può leggere le righe di un altro. Serve un test con due utenti reali: come testare RLS in Supabase

Supabase Security Advisor e questo controllo

DomandaSecurity AdvisorQuesto controllo
Dove viene eseguitoNella dashboard di Supabase, un progetto alla voltaIn questa pagina, dopo un OAuth in sola lettura, per il progetto che sceglie
Cosa leggeI lint del databaseGli stessi lint come un unico controllo, più auth, storage, Edge Functions, backup e impostazioni di rete
Come sono raggruppati i risultatiPer lintPer OWASP Top 10:2025, con le categorie che non può verificare indicate
Cosa ottiene per correggereUn link alla documentazione del lintSQL o l’impostazione della dashboard per ogni problema, e un prompt per il suo agente IA
Cosa può conservareL’elenco nella sua dashboardUn PDF, o un link di condivisione che scade dopo 7 giorni

Copertura della OWASP Top 10:2025

CategoriaControlliStato
A01 Controllo degli accessi non funzionante18Coperta
A02 Configurazione errata della sicurezza9Coperta
A03 Falle nella catena di fornitura del software2Parziale Solo versione di Postgres ed estensioni. Le dipendenze npm stanno nel suo repository.
A04 Errori crittografici4Coperta
A05 Injection1Coperta
A06 Progettazione insicura0Non verificabile La progettazione insicura sta nel funzionamento della sua app, non nelle impostazioni.
A07 Errori di autenticazione8Coperta
A08 Errori di integrità di software o dati1Coperta
A09 Errori di logging e di allerta2Coperta
A10 Gestione errata delle condizioni eccezionali0Non verificabile La gestione degli errori sta nel codice della sua app, che l’accesso in lettura non vede mai.

Tutti i 45 controlli

ControlloIDOWASPCaso peggiore
RLS disattivato su tabelle esposterls_disabled_exposedA01Critica
Policy che consentono ogni rigapolicy_always_trueA01Alta
Policy che si fidano di user_metadatapolicy_uses_user_metadataA01Alta
Policy di scrittura aperte ai visitatori anonimianon_write_policiesA01Alta
View che aggirano RLSviews_without_security_invokerA01Alta
Viste materializzate o foreign table nell’APImatviews_or_foreign_tables_exposedA01Media
Funzioni security definer richiamabili dall’APIsecurity_definer_executableA01Alta
Policy dello storage aperte ai visitatori anonimistorage_objects_anon_policiesA01Alta
Bucket di storage pubblicipublic_bucketsA01Bassa
Canali Realtime privati senza protezionerealtime_messages_rlsA01Alta
Grant di scrittura inutilizzati per visitatori anonimianon_table_grants_writeA01Bassa
Ruoli che aggirano RLSroles_bypass_rlsA01Alta
Colonne di accesso che gli utenti autenticati possono modificareauthz_columns_writableA01Alta
Eliminare e reinserire cambia una colonna protettadelete_insert_bypassA01Alta
Grant di tabella superflui per gli utenti autenticatiauthenticated_table_grants_extraA01Bassa
Privilegi predefiniti che aprono i nuovi oggetti all’APIdefault_privileges_api_rolesA01Bassa
Funzioni security definer che controllano current_userdefiner_checks_current_userA01Media
Policy senza ruolo o senza comandopolicies_without_to_or_forA01Bassa
Segnalazioni del Supabase Security Advisoradvisor_lintsA02Alta
Schemi aggiuntivi esposti nella Data APIextra_exposed_schemasA02Alta
Wildcard negli URL di reindirizzamentoredirect_wildcardsA02Media
URL di reindirizzamento in http o verso localhostinsecure_redirect_urlsA02Media
Accessi anonimi attivianonymous_signins_enabledA02Media
CAPTCHA disattivato per registrazione e accessocaptcha_disabledA02Media
Database aperto a ogni indirizzo IPnetwork_openA02Media
Bucket pubblici senza limiti di uploadpublic_bucket_no_limitsA02Bassa
Nessun limite di righe nelle risposte della Data APIpostgrest_max_rowsA02Media
Aggiornamento di Postgres disponibilepostgres_upgrade_availableA03Media
Estensioni installateextensions_listedA03Info
SSL non imposto sulle connessioni al databasessl_enforcement_offA04Media
Token di accesso validi più di un’orajwt_expiry_longA04Media
Colonne dal nome sensibile leggibili da visitatori anonimisensitive_columns_exposedA04Alta
Segreti del Vault leggibili dai ruoli dell’APIvault_secrets_exposedA04Critica
SQL dinamico costruito da stringhedynamic_sql_concatA05Media
Lunghezza minima della password troppo cortapassword_min_lengthA07Alta
Protezione dalle password compromesse disattivataleaked_password_protection_offA07Media
Conferma dell’email disattivataemail_confirm_offA07Alta
Cambio email sicuro disattivatosecure_email_change_offA07Media
Codici monouso validi più di un’oraotp_expiry_longA07Media
Nessun metodo multifattore attivomfa_unavailableA07Media
Rotazione dei refresh token disattivatarefresh_token_rotation_offA07Media
Cambio password senza nuova autenticazionepassword_change_no_reauthA07Bassa
Edge Functions senza verifica del JWTedge_functions_without_jwtA08Bassa
pgaudit non installatopgaudit_missingA09Info
Nessun backup trovatobackups_or_pitrA09Media

Domande

In cosa si differenzia dal Supabase Security Advisor?

I risultati del Security Advisor sono uno dei controlli. L’analisi aggiunge impostazioni auth, policy dello storage, Edge Functions, backup e impostazioni di rete, raggruppa tutto per OWASP Top 10:2025 e dà una correzione per ogni problema.

Supabase è sicuro per impostazione predefinita?

La piattaforma è mantenuta da Supabase, ma le regole di accesso sono sue. Una tabella nuova creata con SQL puro ha Row Level Security disattivato, e una policy scritta come using (true) permette a chiunque abbia l’anon key di leggere la tabella. L’analisi cerca proprio queste impostazioni.

Cosa significa “RLS disabled” e come lo attivo?

Con RLS disattivato su una tabella di uno schema esposto, chiunque abbia la sua anon key può leggere ogni riga tramite la Data API. Lo attivi con alter table public.your_table enable row level security; poi aggiunga le policy per l’accesso che vuole.

È sicuro che la mia anon key di Supabase sia nel browser?

Sì, la chiave anon (publishable) è pensata per essere pubblica. Può fare solo ciò che consentono i suoi grant e le sue policy RLS, ed è per questo che l’analisi li verifica. La chiave service_role aggira RLS e non deve mai arrivare nel browser.

Controlli il suo progetto

Gratis e in sola lettura. Il report appare in questa pagina.

Controlla il mio progetto Supabase