// docs / security guides / bolt.new checklist
Bolt.new security checklist: 23 items before ship
Bolt.new (StackBlitz WebContainer) runs your dev environment in the browser, generates full-stack JS in minutes, and publishes to Bolt hosting by default or to Netlify (Bolt docs). This checklist targets Bolt-specific risks: secrets that were safe in the dev container leak once the project is exported, Express CORS defaults are permissive, session cookies need explicit HttpOnly flags, and credentials pasted into the terminal or chat are hard to take back. 23 items across secrets, database, auth, headers, deployment, and Bolt-specific gotchas.
PRE = pre-deploy (audit your source). DEPLOY = at deploy time. POST = post-deploy verification.
Segreti e chiavi API (5 articoli)
Il WebContainer di Bolt viene eseguito nel browser; l'esportazione in GitHub o Netlify sposta i segreti dal contenitore isolato al repository pubblico.
- PRE — Never paste service-role keys into the Bolt terminal or chat. Anything you paste there is hard to take back. Keep keys in
.envor your host's environment settings instead. - PRE — Create a
.envfile, never hardcode secrets in code. Il contenitore di sviluppo di Bolt isola bene.env, ma quando esporti in GitHub,.envdeve essere in.gitignore. - PRE — Confirm
.gitignoreexcludes.env,.env.local,.env.*.local. Bolt di solito lo supporta correttamente, ma verificalo prima dell'esportazione. - DEPLOY — Set secrets in Netlify Environment Variables, not in code. Netlify → Impostazioni sito → Crea e distribuisci → Ambiente. Aggiungi lì le tue chiavi, con ambito Production.
- POST — Run Secrets in JavaScript Bundles on the deployed URL. Se una chiave ha raggiunto la distribuzione Netlify, la scansione la troverà.
Controllo dell'accesso al database (3 articoli)
Bolt solitamente ponteggi con Supabase o Convesso. Entrambi hanno modalità di apertura predefinita che necessitano di policy esplicite.
- PRE — If using Supabase, enable RLS on every public table. Bolt's scaffold might not include
ENABLE ROW LEVEL SECURITYor policies. Add both in the migration. - PRE — Write policies that validate user ownership. Ogni politica dovrebbe controllare
auth.uid() = user_ido equivalente. Le policy generate da Bolt a volte non riescono a cogliere questo aspetto. - POST — Run a FixVibe scan on the deployed app. Check the Supabase Row-Level Security result: it shows any table an anonymous visitor can read with your public key.
Autenticazione e sessioni (4 articoli)
Bolt genera autenticazione Express o Next.js. Il rischio risiede nella configurazione dei cookie e nella convalida dei token.
- PRE — Ensure session cookies are
HttpOnly; Secure; SameSite=Lax. Bolt a volte genera cookie senza questi flag. Verificali o aggiungili manualmente. - PRE — Check Bolt's generated auth handlers for server-side token verification. Se viene utilizzato
getSession(), sostituirlo con ricerca backend verificata. - PRE — Verify the sign-in redirect guard. Il parametro
nextdeve iniziare con/, mai//. Bolt a volte lo salta; aggiungerlo manualmente se necessario. - POST — Test logout clears the session cookie. Accedi, esci, controlla i cookie. Il cookie di sessione deve essere cancellato al logout.
HTTP intestazioni e CSP (3 elementi)
Gli scaffold Express/Next.js di Bolt raramente includono CSP. Gli host statici necessitano di una configurazione esplicita.
- PRE — Add middleware for security headers if using Express. L'impalcatura Express di Bolt necessita di middleware manuale per CSP, HSTS, X-Frame-Options.
- PRE — If using Next.js, ensure
src/middleware.tsexists with CSP. Bolt potrebbe supportarlo, ma verificare che la logica CSP nonce sia corretta. - POST — Run HTTP Security Headers on the deployed Netlify URL. La scansione segnala intestazioni mancanti.
Igiene della distribuzione (5 articoli)
Bolt esporta in GitHub e Netlify. Entrambi necessitano di un'attenta configurazione.
- DEPLOY — Ensure Bolt exports include
.gitignorewith.envlisted. Verificare che il repository GitHub non contenga file.envdopo l'esportazione. - DEPLOY — Set Netlify env vars via Site settings, not GitHub secrets. Le variabili d'ambiente di Netlify sono crittografate quando sono inattive; I segreti GitHub sono progettati per CI, non per la distribuzione.
- DEPLOY — Audit the Netlify deploy log for secret echo. Se il registro di compilazione stampa qualsiasi env var, è compromesso.
- DEPLOY — Configure Netlify build command to not run
echo $SECRET. Controllapackage.jsone crea script per qualsiasi output segreto. - POST — Verify Netlify redirect for HTTP → HTTPS exists. Bolt le app dovrebbero forzare HTTPS. Netlify può imporlo tramite le impostazioni.
Bolt trucchi specifici (3 articoli)
Modelli univoci per il flusso WebContainer-to-export di Bolt:
- WebContainer isolation is lost on export. L'ambiente di sviluppo di Bolt isola in modo sicuro i segreti, ma una volta esportato in GitHub, sei responsabile della disciplina
.gitignoree env-var. - Treat the terminal and chat like a shared log. Don't paste credentials into either; put them in
.envor your host's environment settings. - L'impalcatura Express di Express
cors({ origin: '*' })is the default. Bolt spesso include CORS permissivo. Sostituisci concors({ origin: 'https://yourdomain.com', credentials: true }).
Prossimi passi
Esamina general vibe coding security checklist per 51 elementi cross-tool. Vedere step-by-step hardening per CSP, RLS e modelli di autenticazione.
