// 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.
Secretos y claves API (5 artículos)
El WebContainer de Bolt se ejecuta en el navegador; exportar a GitHub o Netlify mueve secretos del contenedor aislado al repositorio público.
- 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. - El contenedor de desarrollo de PRE — Create a
.envfile, never hardcode secrets in code. Bolt aísla muy bien a.env, pero cuando exportas a GitHub,.envdebe estar en.gitignore. - PRE — Confirm
.gitignoreexcludes.env,.env.local,.env.*.local. Bolt normalmente realiza el scaffolding correctamente, pero verifique antes de exportar. - DEPLOY — Set secrets in Netlify Environment Variables, not in code. Netlify → Configuración del sitio → Crear e implementar → Entorno. Agregue sus claves allí, con el alcance de Producción.
- POST — Run Secrets in JavaScript Bundles on the deployed URL. Si una clave llegó a la implementación de Netlify, el escaneo la encontrará.
Control de acceso a la base de datos (3 artículos)
Bolt generalmente andamios con Supabase o Convex. Ambos tienen modos abiertos predeterminados que necesitan políticas explícitas.
- 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. Cada póliza debe marcar
auth.uid() = user_ido equivalente. Las políticas generadas por Bolt a veces pasan por alto esto. - 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.
Autenticación y sesiones (4 artículos)
Bolt genera autenticación Express o Next.js. El riesgo está en la configuración de cookies y la validación de tokens.
- PRE — Ensure session cookies are
HttpOnly; Secure; SameSite=Lax. Bolt a veces genera cookies sin estos indicadores. Verifíquelos o agréguelos manualmente. - PRE — Check Bolt's generated auth handlers for server-side token verification. Si se utiliza
getSession(), reemplácelo con una búsqueda de backend verificada. - PRE — Verify the sign-in redirect guard. El parámetro
nextdebe comenzar con/, nunca con//. Bolt a veces se salta esto; agréguelo manualmente si es necesario. - POST — Test logout clears the session cookie. Iniciar sesión, cerrar sesión, inspeccionar las cookies. La cookie de sesión debe eliminarse al cerrar sesión.
HTTP encabezados y CSP (3 elementos)
Los andamios Express/Next.js de Bolt rara vez incluyen a CSP. Los hosts estáticos necesitan una configuración explícita.
- PRE — Add middleware for security headers if using Express. Bolt's Scaffold Express necesita middleware manual para CSP, HSTS, X-Frame-Options.
- PRE — If using Next.js, ensure
src/middleware.tsexists with CSP. Bolt podría implementarlo, pero verifique que la lógica nonce de CSP sea correcta. - POST — Run HTTP Security Headers on the deployed Netlify URL. El análisis informa que faltan encabezados.
Higiene del despliegue (5 artículos)
Bolt exporta a GitHub y Netlify. Ambos necesitan una configuración cuidadosa.
- DEPLOY — Ensure Bolt exports include
.gitignorewith.envlisted. Verifique que el repositorio GitHub no tenga archivos.envdespués de la exportación. - DEPLOY — Set Netlify env vars via Site settings, not GitHub secrets. Las variables de entorno de Netlify están cifradas en reposo; Los secretos GitHub están diseñados para CI, no para la implementación.
- DEPLOY — Audit the Netlify deploy log for secret echo. Si el registro de compilación imprime cualquier var de entorno, está comprometido.
- DEPLOY — Configure Netlify build command to not run
echo $SECRET. Verifique supackage.jsony cree scripts para cualquier salida secreta. - Las aplicaciones POST — Verify Netlify redirect for HTTP → HTTPS exists. Bolt deberían forzar a HTTPS. Netlify puede hacer cumplir esto a través de la configuración.
Bolt errores específicos (3 elementos)
Patrones exclusivos del flujo de WebContainer a exportación de Bolt:
- El entorno de desarrollo de WebContainer isolation is lost on export. Bolt aísla de forma segura los secretos, pero una vez que exportas a GitHub, eres responsable de
.gitignorey de la disciplina 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. - El andamio Express de Express
cors({ origin: '*' })is the default. Bolt a menudo incluye CORS permisivo. Reemplace concors({ origin: 'https://yourdomain.com', credentials: true }).
Próximos pasos
Revise general vibe coding security checklist para ver 51 elementos de herramientas cruzadas. Consulte step-by-step hardening para CSP, RLS y patrones de autenticación.
