Basi della sicurezza
Bolt è sicuro? Cosa abbiamo trovato in 1.123 app Bolt
Bolt è sicuro? Abbiamo passato 1.123 app Bolt online per nove controlli. L’hosting era pulito. I rilievi erano chiavi e tabelle aperte dentro le app.

In breve
- Bolt è sicuro? Per tutto ciò che decide Bolt stesso, sì. Su 1.123 app Bolt online ne abbiamo trovate 13 che pubblicano le source map, una che lasciava chiamare la sua API da qualsiasi sito, e nemmeno un certificato difettoso.
- 75 di quelle app distribuivano qualcosa con la forma di una chiave nel codice che un visitatore scarica. Quasi tutte erano chiavi Google, che di solito vanno bene. Dieci erano chiavi OpenAI, e chi ne trova una può spenderla.
- Dei 35 database Bolt che abbiamo potuto davvero interrogare, 27 hanno restituito righe a una richiesta senza login. Entrambi i problemi sono impostazioni del tuo progetto.
Hai costruito qualcosa su Bolt, hai premuto Publish, e adesso vive a un
indirizzo che finisce con bolt.host. Prima di mandare quel link a clienti veri
hai digitato "bolt è sicuro" in un campo di ricerca, e quello che è tornato era
un elenco di cinque vulnerabilità che, a quanto pare, stanno in quasi ogni app
Bolt, con uno scanner in vendita in fondo alla pagina.
Ecco dove sbagliano quegli elenchi: mettono ogni rischio sullo stesso piano, e sulle app Bolt online la maggior parte di quei rischi compare appena. Source map, header cross-origin aperti e route API non protette ci stanno alla pari con le chiavi esposte e le tabelle aperte. Nei nostri dati le prime tre sono comparse su 13, 1 e 4 app su più di mille. Le altre due sono dove stavano i rilievi.
Tra il 12 e il 14 agosto 2026 abbiamo passato gli stessi nove controlli esterni che chiunque può lanciare gratis dalla nostra homepage su 30.998 app online, e 1.123 di queste erano pubblicate sull’hosting di Bolt. Questo è ciò che è tornato per quelle, e qui si ferma il nostro sguardo.
Bolt è sicuro?
Per tutto ciò che decide Bolt stesso, sì. Il suo hosting è uscito pulito quanto quello di Lovable, e tutto ciò che ha abbassato un voto stava dentro un’app costruita dal suo proprietario.
Pensa a un’app Bolt come a un negozio. Bolt costruisce l’edificio: l’indirizzo, il certificato, l’hosting. Tu riempi la vetrina, cioè ogni pagina, immagine e script che la tua app consegna a un visitatore, e chiunque passi davanti può leggere quello che c’è dentro. Dietro il negozio c’è il magazzino, il tuo database, con la sua porta e la sua serratura. "Bolt è sicuro" sono in realtà tre domande, una per ciascuno.
- L’edificio. Bolt pubblica la tua app come si deve: un certificato valido, un dominio che non scade, niente di dimenticato a un indirizzo pubblico. Questo è il lavoro di Bolt.
- La vetrina. Quello che il browser di un visitatore scarica. Una chiave lasciata lì può leggerla chiunque guardi, in qualunque modo ci sia finita.
- Il magazzino. Se il tuo database risponde a uno sconosciuto che fa il giro dal retro e chiede. Dipende da una serratura che metti tu, tabella per tabella.
I nostri controlli leggono tutte e tre da fuori. Nessuno di loro legge il codice scritto dall’agente di Bolt come lo leggeresti tu nell’editor, e questo articolo non tira a indovinare.
Cosa abbiamo trovato in 1.123 app Bolt
Nove controlli, eseguiti da fuori, senza login e senza accesso all’account di nessuno. Quando un database rispondeva, gli abbiamo chiesto quante righe avrebbe consegnato e ci siamo fermati lì; non ne abbiamo letta nessuna. Nessuna app viene nominata qui o altrove in ciò che pubblichiamo. Ogni quota qui sotto è sulle app su cui quel controllo ha risposto, perché un controllo che non è riuscito a finire è sconosciuto, non superato, ed è per questo che i denominatori cambiano. Metodo e dati sono nel rapporto.
| Cosa abbiamo controllato | App Bolt | Chi lo decide |
|---|---|---|
| Header di sicurezza del browser mancanti | 1.121 su 1.123 | L’hosting di Bolt |
| Qualcosa con la forma di una chiave nel codice che un visitatore scarica | 75 su 1.123 (7 %) | La tua app |
| Una tabella del database leggibile senza login | 27 su 35 | La tua app |
| Codice sorgente originale pubblicato (source map) | 13 su 1.123 (1 %) | Un’impostazione di build |
| Un bucket di storage che elenca i suoi file | 6 su 901 | La tua app |
| Una route API che ha consegnato dati a uno sconosciuto | 4 su 1.120 | La tua app |
| Qualsiasi sito autorizzato a chiamare la tua API | 1 su 1.120 | La tua app |
Un file privato come .env o .git/config a un URL pubblico | 0 su 1.109 | La tua app |
| Certificato scaduto o non attendibile | 0 su 1.119 | Bolt |
| Dominio in scadenza | 0 su 1.123 | Bolt |
I voti: 1.051 A, 33 B, 24 C, 15 D e nessuna F.
Quella prima riga dipende da ciò che serve le tue pagine, e su
yourapp.bolt.host è Bolt, quindi 1.121 app hanno avuto la stessa risposta. Gli
header vale la pena averli, e non è con quelli
che si prende una D. Togli quella riga e 1.008 delle 1.123 app Bolt non
avevano nient’altro. Le altre 115 sono l’argomento del resto di questo
articolo.
Cosa fa bene Bolt
I controlli che dipendono da Bolt sono tornati quasi vuoti, e sull’unica impostazione di build che misuriamo Bolt è alla pari con Lovable.
Source map. 13 app Bolt su 1.123 pubblicano i file originali dietro l’app, commenti compresi. È poco più di una su cento, più o meno lo stesso tasso delle 225 su 18.553 di Lovable, e una map rivela più di quanto si pensi.
Header cross-origin. Una app su 1.120 diceva a ogni sito del mondo che poteva chiamare la sua API. È il rilievo che più facilmente lascia un altro sito agire al posto del tuo utente, e su Bolt è comparso una volta.
L’edificio stesso. Il certificato era valido su tutte le 1.119 app in cui ne
abbiamo potuto leggere uno, nessun dominio su 1.123 era vicino alla scadenza, e
nessuna app serviva un file .env o un .git/config a un indirizzo qualunque.
Niente di tutto questo ti ha chiesto qualcosa, e su certi altri builder sì.
Di cosa erano fatte le 75 chiavi
Quasi tutte andavano bene, e le poche che non andavano sono la cosa più cara di questo articolo.
75 delle 1.123 app Bolt avevano qualcosa con la forma di una chiave nel codice che un visitatore scarica. Contate come forme, sono il 7 % delle app Bolt che "espongono segreti". Contate per quello che ogni chiave può fare, si dividono così, con ogni app contata una volta sola sotto la cosa più grave che contiene:
| Cosa abbiamo trovato nel bundle | App | Cosa significa |
|---|---|---|
| Una chiave API Google, e nient’altro | 38 | Di solito corretta, una volta limitata al tuo dominio |
| Un segreto che non abbiamo potuto attribuire | 26 | Non abbiamo potuto dire a quale fornitore appartiene |
| Una chiave OpenAI | 10 | Addebita sul tuo account, direttamente |
| Una chiave Anthropic | 1 | Addebita sul tuo account, direttamente |
Le 38 chiavi Google sono il motivo per cui classifichiamo ogni chiave invece di cercare solo uno schema. Una chiave Google Maps nel browser sta dove deve stare, e la correzione è limitarla al tuo dominio.
Le dieci chiavi OpenAI sono il caso opposto. Una chiave OpenAI è un bearer token: chi ce l’ha può spenderla, da qualsiasi posto, e OpenAI non offre nessuna impostazione che leghi una chiave al tuo sito. Tutte e dieci quelle app hanno preso una D, perché un solo rilievo critico mette un tetto al voto, qualunque cosa l’app abbia fatto bene per il resto. Cosa fare con una chiave così, in ordine comincia dal ruotarla oggi stesso.
Ecco il numero che fa di questo il rilievo di Bolt. Le app Bolt erano meno di 4 su 100 delle app che abbiamo scansionato, e portavano 10 delle 33 chiavi OpenAI che abbiamo trovato in tutto. Per app, fa circa una app Bolt su 110, contro 18 delle 18.554 app Lovable, circa una su mille. Dieci app sono un campione piccolo, e qualcuna in più o in meno sposterebbe parecchio quel rapporto. Bolt resterebbe comunque davanti a tutti gli altri builder che abbiamo misurato.
Perché le app Bolt espongono chiavi API?
Da fuori non vediamo come ciascuna di quelle dieci chiavi sia arrivata lì, e le istruzioni di Bolt dicono che nessuna avrebbe dovuto esserci.
La documentazione di Bolt descrive il percorso previsto. Chiedi all’agente di integrare OpenAI e, con le parole della documentazione, "completerà il codice e poi mostrerà un messaggio che ti chiede di aggiungere il tuo secret". Quel secret va nel pannello Secrets, dove solo una funzione server può leggerlo. Una funzione server gira dal lato di Bolt, quindi il browser del visitatore non riceve mai la chiave. Costruita così, la chiave resta in magazzino.
La scorciatoia che possiamo indicare è la variabile d’ambiente. L’introduzione di
Bolt ai database dice che le variabili d’ambiente mantengono privati questi
valori, e due dei tre nomi che elenca, VITE_SUPABASE_URL e
VITE_SUPABASE_ANON_KEY, iniziano con VITE_. Quel prefisso appartiene a Vite,
lo strumento di build, e la documentazione di Vite dice il contrario: una
variabile VITE_ viene scritta nel codice che il browser scarica, e non deve
mai contenere una chiave API. Per quei due nomi è innocuo, perché l’indirizzo di
un progetto e una chiave pubblicabile sono fatti per essere pubblici. Copia lo
stesso schema per VITE_OPENAI_API_KEY e la chiave è lì in vetrina.
Anche una chiave incollata in chat mentre sistemavi altro può finire scritta direttamente in una pagina. In entrambi i casi il risultato è lo stesso file. Come funziona il prefisso spiega quali valori ci stanno dietro e quali mai.
27 su 35: i database Bolt che abbiamo potuto interrogare
Dei database Bolt che ci hanno dato una risposta utilizzabile, 27 su 35 hanno consegnato righe a una richiesta senza alcun login. È un conteggio, e la base è troppo piccola per stamparlo come percentuale.
I denominatori qui contano più che in qualsiasi altro punto di questo articolo. 266 delle 1.123 app Bolt nominavano un progetto Supabase nel codice che distribuiscono. Solo 35 di queste hanno risposto abbastanza bene da permetterci di giudicare. Le altre 231 non si sono potute giudicare, il che le rende sconosciute, e non le abbiamo contate né come pulite né come esposte.
In 4 delle 27 la tabella che ha risposto aveva il nome tipico delle tabelle che
parlano di persone, come users o profiles. Quelle quattro e le undici app con
una chiave OpenAI o Anthropic fanno tutte le 15 D. Nelle altre 23 era una tabella
che da fuori non potevamo identificare, forse un elenco di prodotti che doveva
essere pubblico, forse tutt’altro.
Perché si gioca tutto sul database
Perché l’indirizzo del magazzino è scritto in vetrina, e deve esserlo.
Quando un’app Bolt legge i suoi dati dalla pagina, la pagina ha bisogno dell’indirizzo del database e di una chiave pubblicabile, quindi entrambi viaggiano fino a ogni visitatore. Che quella chiave sia pubblica è giusto; è da lì che entra la tua app. Cosa riceve in cambio lo decide un’impostazione per tabella chiamata Row Level Security. Attiva, con una policy scritta, la chiave pubblica legge solo le righe che la policy consente. Disattivata, legge la tabella.
Supabase attiva la Row Level Security di default per le tabelle che crei
cliccando nel suo Table Editor. Le tabelle create eseguendo SQL non la
ricevono, ed eseguire SQL è proprio il modo in cui un builder crea le tabelle per
te. Attivarla è poi solo il primo passo, perché la policy che un assistente
scrive per far sparire un errore di permessi è spesso using (true), che lascia
passare tutti mentre la dashboard indica la tabella come protetta.
La RLS è attiva e la tua tabella è ancora pubblica
racconta tutta questa storia.
Il controllo del database di Bolt cerca proprio questo: la sua documentazione lo descrive come capace di trovare "una policy di Row Level Security (RLS) mancante o un permesso troppo aperto". La guida in linguaggio semplice per questa piattaforma è la tua app Bolt è sicura.
Cosa controlla l’audit di sicurezza di Bolt
Legge il tuo progetto dall’interno, e parte quando premi il pulsante.
Bolt ha annunciato l’audit il 30 luglio 2026. Su un piano a pagamento sta nel menu Publish come Run security audit: esamina il tuo codice e il tuo database, corregge da solo la maggior parte dei problemi, segnala il resto e non consuma i tuoi token. Su ogni piano, compreso quello gratuito, le impostazioni di un database Bolt hanno una sezione Security che esegue il controllo di Row Level Security descritto sopra.
La nostra scansione è avvenuta due settimane dopo la comparsa di quel pulsante, quindi i numeri qui sopra non possono dire quanto abbia cambiato le cose da allora. Quello che possiamo dire è come i due punti di vista si incastrano. L’audit vede il tuo progetto dall’interno, comprese le tabelle che le tue pagine non nominano mai, cosa che una scansione da fuori non può mai fare. Una scansione da fuori vede quello che uno sconosciuto ottiene dall’app pubblicata. Quando un audit finisce, il pulsante diventa Security audit up to date, e la prossima modifica che pubblichi è una modifica che non ha visto.
Lancia l’audit prima di pubblicare e guarda da fuori dopo. Se i due non sono d’accordo sul fatto che una tabella sia leggibile, fidati della risposta da fuori, perché è quella che ottiene uno sconosciuto.
Come controllare la tua app Bolt
Cinque cose da guardare. Usa una finestra privata, così il tuo login non risponde al posto di uno sconosciuto.
- Scopri quale database hai. I nuovi progetti Bolt usano un database Bolt di default. Se hai scelto Supabase quando hai creato il progetto, o ne hai collegato uno dopo, le tue tabelle stanno in un progetto Supabase a cui puoi accedere.
- Leggi la serratura di ogni tabella. Con un database Bolt, apri la sezione Security nelle impostazioni del database e lancia il controllo. Con Supabase, apri Authentication → Policies e scorri l’elenco: una tabella con la Row Level Security disattivata è leggibile da chiunque abbia l’indirizzo del tuo progetto, e quell’indirizzo è nella tua app. Una policy che lascia passare tutti conta come disattivata.
- Cerca
VITE_nel tuo progetto. Ogni valore dietro quel prefisso è in vetrina. L’indirizzo di un progetto e una chiave pubblicabile ci stanno bene. Una chiave che ti costa soldi va nel pannello Secrets, letta da una funzione server. Se una di queste è mai stata dietro il prefisso, ruotala prima dal fornitore, perché il vecchio valore continua a funzionare finché non lo fai. - Guarda il tuo storage. Un bucket segnato come pubblico elenca ogni suo file a chiunque lo chieda, compresi quelli che la tua app non mostra mai.
- Oppure lascia fare alla scansione. Fa tutto questo da fuori più altri cinque controlli, ci mette circa 20 secondi, non chiede un account e ti mostra un voto e cosa l’ha prodotto: scansiona la tua app gratis.
Perché resti così dopo la pubblicazione
Un controllo del mese scorso descrive l’app del mese scorso. Su Bolt pubblicare è un pulsante, quindi una tabella aggiunta stamattina o una chiave incollata a mezzanotte è online appena lo premi.
Reeve Monitor rifà i nove controlli per te:
- tutti e nove i controlli ogni ora, su un massimo di tre app
- se l’app è raggiungibile, ogni 60 secondi
- un messaggio quando un risultato cambia, così un nuovo rilievo non aspetta che tu guardi
- un rapporto mensile di quello che ha visto
Monitor costa €12 al mese a listino, con sette giorni gratis prima di addebitarti qualcosa. La pagina dei prezzi a volte è sotto la cifra indicata qui e mai sopra.
Se la tua app Bolt tiene i dati nel tuo progetto Supabase, Reeve Care ne conserva una copia. Vale per un progetto collegato fin dall’inizio e per un database Bolt che hai rivendicato in Supabase.
- una copia cifrata del tuo database Supabase ogni notte, tenuta dove il tuo progetto non può arrivare
- ogni copia verificata prima di contare, con il conteggio delle righe di ogni tabella
- un ripristino con un clic quando ti serve
- anche i tuoi file caricati, appena colleghi una credenziale di Storage
- tutto ciò che fa Monitor
Care costa €49 al mese a listino per un’app, con gli stessi sette giorni gratis.
Una tabella aperta è qualcosa che uno sconosciuto può leggere. Una migrazione andata nel verso sbagliato, o un agente con accesso al database, è qualcosa che può svuotarla, e nessuno dei nove controlli di questo articolo riporterebbe indietro le righe. Il giorno in cui un agente IA ha cancellato un database di produzione mostra com’è vista da dentro.
Cosa fare questa settimana
Cosa fare
- Cerca
VITE_nel tuo progetto Bolt e leggi ogni valore dietro. Una chiave che ti costa soldi va nel pannello Secrets, letta da una funzione server. - Se una chiave OpenAI o un’altra chiave a pagamento è mai stata in quell’elenco, ruotala dal fornitore prima di toglierla dal codice.
- Lancia il controllo di sicurezza del database, oppure apri Authentication → Policies in Supabase, e leggi la serratura di ogni tabella. Una policy che lascia passare tutti lascia la tabella aperta.
- Lancia l’audit di Bolt prima di pubblicare, poi controlla da fuori l’app pubblicata.
- Tieni una copia del tuo database dove il tuo progetto e il tuo agente non possono arrivare, e verifica che la copia si ripristini.
Comincia dalla ricerca di VITE_, perché è l’unico rilievo su Bolt che costa
soldi da solo. Se stai ancora scegliendo tra un builder e l’altro,
qual è il builder di app IA più sicuro mette i
cinque uno accanto all’altro.
FAQ
Bolt è sicuro da usare?
Per la parte che controlla Bolt, i nostri numeri dicono di sì. Su 1.123 app online su bolt.host non abbiamo trovato certificati difettosi né domini vicini alla scadenza, 13 app pubblicavano le source map e una lasciava chiamare la sua API da qualsiasi sito. Quello che decide la tua app sta dentro di lei: se una chiave che ti costa soldi è finita nel codice che i visitatori scaricano, e se le tue tabelle rispondono a uno sconosciuto. Sono due impostazioni che puoi controllare da solo.
Le app Bolt sono sicure di default?
Le parti che Bolt pubblica per te sono uscite pulite dalla nostra scansione. Il resto dipende da cosa è successo in chat. Bolt dovrebbe tenere una chiave API a pagamento nel pannello Secrets, dietro una funzione server, e ha un controllo del database che cerca una Row Level Security mancante. Nessuno dei due parte da solo: l’audit del progetto è un pulsante nel menu Publish dei piani a pagamento, e il controllo del database è una sezione che apri tu. Ad agosto 2026, 75 app Bolt su 1.123 avevano qualcosa con la forma di una chiave nel front end, e 27 dei 35 database che abbiamo potuto interrogare hanno risposto a uno sconosciuto.
Perché le app Bolt espongono chiavi API?
Da fuori non vediamo come una singola chiave sia arrivata lì. La strada che possiamo indicare è la variabile d’ambiente. Una variabile il cui nome inizia con VITE_ viene scritta nel JavaScript che ogni visitatore scarica, e Vite, lo strumento di build dietro quel prefisso, dice che variabili del genere non devono mai contenere una chiave API. Per l’indirizzo di un progetto o una chiave pubblicabile è innocuo. Per una chiave OpenAI è una bolletta. Dieci delle 1.123 app Bolt che abbiamo scansionato ne distribuivano una.
I miei dati Supabase sono al sicuro in un’app Bolt?
Dipende da un’impostazione per tabella. Quando un’app Bolt parla con Supabase dalla pagina, usa una chiave pubblicabile fatta per essere pubblica, quindi è solo la Row Level Security a decidere cosa riceve uno sconosciuto. Abbiamo potuto chiedere righe a 35 database Bolt senza login, e 27 le hanno consegnate. È un conteggio, e la base è troppo piccola per trasformarlo in una percentuale. Le tue policy le leggi in pochi minuti.
Bolt è più sicuro di Lovable?
Sul lato piattaforma sono alla pari: 13 app Bolt su 1.123 e 225 app Lovable su 18.553 pubblicavano source map, poco più di una su cento in entrambi i casi, e nessuna aveva problemi di certificato o di dominio. La differenza erano le chiavi. Dieci delle 1.123 app Bolt avevano una chiave OpenAI, contro 18 su 18.554 su Lovable. Dieci è un numero piccolo, quindi leggilo come una direzione. Il confronto completo dei cinque builder è in un articolo a parte.