// 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.
Secrets et clés API (5 éléments)
Le WebContainer de Bolt s'exécute dans le navigateur ; l'exportation vers GitHub ou Netlify déplace les secrets du conteneur isolé vers le référentiel public.
- 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. Le conteneur de dĂ©veloppement de Bolt isole bien.env, mais lorsque vous exportez vers GitHub,.envdoit ĂȘtre dans.gitignore. - PRE â Confirm
.gitignoreexcludes.env,.env.local,.env.*.local. Bolt Ă©chafaude gĂ©nĂ©ralement cela correctement, mais vĂ©rifiez avant l'exportation. - DEPLOY â Set secrets in Netlify Environment Variables, not in code. Netlify â ParamĂštres du site â CrĂ©er et dĂ©ployer â Environnement. Ajoutez-y vos clĂ©s, limitĂ©es Ă Production.
- POST â Run Secrets in JavaScript Bundles on the deployed URL. Si une clĂ© atteint le dĂ©ploiement Netlify, l'analyse la trouvera.
ContrÎle d'accÚs à la base de données (3 éléments)
Bolt échafaude généralement avec Supabase ou Convex. Les deux ont des modes d'ouverture par défaut qui nécessitent des politiques explicites.
- 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. Chaque politique doit cocher
auth.uid() = user_idou Ă©quivalent. Les stratĂ©gies gĂ©nĂ©rĂ©es par Bolt manquent parfois cela. - 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.
Authentification et sessions (4 éléments)
Bolt génÚre une authentification Express ou Next.js. Le risque réside dans la configuration des cookies et la validation des jetons.
- PRE â Ensure session cookies are
HttpOnly; Secure; SameSite=Lax. Bolt gĂ©nĂšre parfois des cookies sans ces indicateurs. VĂ©rifiez-les ou ajoutez-les manuellement. - PRE â Check Bolt's generated auth handlers for server-side token verification. Si
getSession()est utilisĂ©, remplacez-le par une recherche backend vĂ©rifiĂ©e. - PRE â Verify the sign-in redirect guard. Le paramĂštre
nextdoit commencer par/, jamais//. Bolt saute parfois cela ; ajoutez-le manuellement si nĂ©cessaire. - POST â Test logout clears the session cookie. Connectez-vous, dĂ©connectez-vous, inspectez les cookies. Le cookie de session doit ĂȘtre supprimĂ© lors de la dĂ©connexion.
HTTP en-tĂȘtes et CSP (3 Ă©lĂ©ments)
Les échafaudages Express/Next.js de Bolt incluent rarement CSP. Les hÎtes statiques nécessitent une configuration explicite.
- PRE â Add middleware for security headers if using Express. L'Ă©chafaudage Express de Bolt nĂ©cessite un middleware manuel pour CSP, HSTS, X-Frame-Options.
- PRE â If using Next.js, ensure
src/middleware.tsexists with CSP. Bolt pourrait l'Ă©chafauder, mais vĂ©rifiez que la logique occasionnelle CSP est correcte. - POST â Run HTTP Security Headers on the deployed Netlify URL. L'analyse signale des en-tĂȘtes manquants.
HygiÚne de déploiement (5 éléments)
Bolt exporte vers GitHub et Netlify. Les deux nécessitent une configuration minutieuse.
- DEPLOY â Ensure Bolt exports include
.gitignorewith.envlisted. VĂ©rifiez que le rĂ©fĂ©rentiel GitHub ne contient pas de fichiers.envaprĂšs l'exportation. - DEPLOY â Set Netlify env vars via Site settings, not GitHub secrets. Les variables d'environnement de Netlify sont chiffrĂ©es au repos ; GitHub les secrets sont conçus pour CI, pas pour le dĂ©ploiement.
- DEPLOY â Audit the Netlify deploy log for secret echo. Si le journal de construction imprime une variable d'environnement, elle est compromise.
- DEPLOY â Configure Netlify build command to not run
echo $SECRET. VĂ©rifiez votrepackage.jsonet crĂ©ez des scripts pour toute sortie secrĂšte. - POST â Verify Netlify redirect for HTTP â HTTPS exists. Bolt les applications devraient forcer HTTPS. Netlify peut appliquer cela via les paramĂštres.
Bolt piÚges spécifiques (3 éléments)
ModÚles uniques au flux WebContainer-to-export de Bolt :
- L'environnement de dĂ©veloppement de WebContainer isolation is lost on export. Bolt isole les secrets en toute sĂ©curitĂ©, mais une fois que vous exportez vers GitHub, vous ĂȘtes responsable de
.gitignoreet de la discipline 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. - Express
cors({ origin: '*' })is the default. L'échafaudage Express de Bolt inclut souvent le permissif CORS. Remplacez parcors({ origin: 'https://yourdomain.com', credentials: true }).
Prochaines étapes
Examinez le general vibe coding security checklist pour 51 éléments multi-outils. Voir step-by-step hardening pour CSP, RLS et les modÚles d'authentification.
