FixVibe

// 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.

Segredos e chaves API (5 itens)

O WebContainer de Bolt é executado no navegador; exportar para GitHub ou Netlify move segredos do contêiner isolado para o repositório público.

  1. PRE — Never paste service-role keys into the Bolt terminal or chat. Anything you paste there is hard to take back. Keep keys in .env or your host's environment settings instead.
  2. O contêiner de desenvolvimento de PRE — Create a .env file, never hardcode secrets in code. Bolt isola .env bem, mas quando você exporta para GitHub, .env deve estar em .gitignore.
  3. PRE — Confirm .gitignore excludes .env, .env.local, .env.*.local. Bolt geralmente faz o scaffolding corretamente, mas verifique antes de exportar.
  4. DEPLOY — Set secrets in Netlify Environment Variables, not in code. Netlify → Configurações do site → Construir e implantar → Ambiente. Adicione suas chaves lá, com escopo em Production.
  5. POST — Run Secrets in JavaScript Bundles on the deployed URL. Se uma chave chegar à implantação do Netlify, a varredura a encontrará.

Controle de acesso ao banco de dados (3 itens)

Bolt geralmente andaimes com Supabase ou Convexo. Ambos têm modos abertos por padrão que precisam de políticas explícitas.

  1. PRE — If using Supabase, enable RLS on every public table. Bolt's scaffold might not include ENABLE ROW LEVEL SECURITY or policies. Add both in the migration.
  2. PRE — Write policies that validate user ownership. Toda política deve marcar auth.uid() = user_id ou equivalente. As políticas geradas por Bolt às vezes não percebem isso.
  3. 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.

Autenticação e sessões (4 itens)

Bolt gera autenticação Express ou Next.js. O risco está na configuração do cookie e na validação do token.

  1. PRE — Ensure session cookies are HttpOnly; Secure; SameSite=Lax. Bolt às vezes gera cookies sem esses sinalizadores. Verifique ou adicione-os manualmente.
  2. PRE — Check Bolt's generated auth handlers for server-side token verification. Se getSession() for usado, substitua por pesquisa de back-end verificada.
  3. PRE — Verify the sign-in redirect guard. O parâmetro next deve começar com /, nunca //. Bolt às vezes pula isso; adicione-o manualmente, se necessário.
  4. POST — Test logout clears the session cookie. Faça login, saia, inspecione os cookies. O cookie de sessão deve ser excluído no logout.

HTTP cabeçalhos e CSP (3 itens)

Os andaimes Express/Next.js de Bolt raramente incluem CSP. Hosts estáticos precisam de configuração explícita.

  1. O andaime Express de PRE — Add middleware for security headers if using Express. Bolt precisa de middleware manual para CSP, HSTS, X-Frame-Options.
  2. PRE — If using Next.js, ensure src/middleware.ts exists with CSP. Bolt pode fazer o scaffold, mas verifique se a lógica nonce CSP está correta.
  3. POST — Run HTTP Security Headers on the deployed Netlify URL. A verificação relata cabeçalhos ausentes.

Higiene de implantação (5 itens)

Bolt exporta para GitHub e Netlify. Ambos precisam de configuração cuidadosa.

  1. DEPLOY — Ensure Bolt exports include .gitignore with .env listed. Verifique se o repositório GitHub não possui arquivos .env após a exportação.
  2. DEPLOY — Set Netlify env vars via Site settings, not GitHub secrets. As variáveis de ambiente do Netlify são criptografadas em repouso; GitHub segredos são projetados para CI, não para implantação.
  3. DEPLOY — Audit the Netlify deploy log for secret echo. Se o log de construção imprimir qualquer env var, ele está comprometido.
  4. DEPLOY — Configure Netlify build command to not run echo $SECRET. Verifique seu package.json e crie scripts para qualquer saída secreta.
  5. POST — Verify Netlify redirect for HTTP → HTTPS exists. Bolt aplicativos devem forçar HTTPS. O Netlify pode impor isso por meio de configurações.

pegadinhas específicas de Bolt (3 itens)

Padrões exclusivos do fluxo WebContainer para exportação de Bolt:

  1. O ambiente de desenvolvimento de WebContainer isolation is lost on export. Bolt isola segredos com segurança, mas depois de exportar para GitHub, você será responsável por .gitignore e pela disciplina env-var.
  2. Treat the terminal and chat like a shared log. Don't paste credentials into either; put them in .env or your host's environment settings.
  3. O andaime expresso de Express cors({ origin: '*' }) is the default. Bolt geralmente inclui CORS permissivo. Substitua por cors({ origin: 'https://yourdomain.com', credentials: true }).

Próximas etapas

Revise general vibe coding security checklist para 51 itens de ferramentas cruzadas. Consulte step-by-step hardening para CSP, RLS e padrões de autenticação.

// escaneie seu app

Pare de ler. Comece a encontrar as falhas no seu.

Drop in a URL — FixVibe runs every passive check from this guide plus the rest of its 230+ passive checks, usually in under a minute. Free, no install, no card.

  • Free tier — 3 scans / mês, sem cartão.
  • Scans passivos contra qualquer URL — sem verificação de domínio.
  • Afinado para Cursor, Claude Code, Lovable, Bolt, v0, Replit.
  • Coding-agent prompts for code/config findings, plus operator steps for DNS/provider fixes.
Bolt.new security checklist: 23 items before ship · FixVibe