// 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.
Geheimnisse und API Schlüssel (5 Artikel)
Der WebContainer von Bolt läuft im Browser; Durch den Export nach GitHub oder Netlify werden Geheimnisse aus dem isolierten Container in das öffentliche Repo verschoben.
- 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. Bolts Entwicklungscontainer isoliert.envgut, aber wenn Sie nach GitHub exportieren, muss.envin.gitignoresein. - PRE — Confirm
.gitignoreexcludes.env,.env.local,.env.*.local. Bolt stellt dies normalerweise korrekt dar, aber überprüfen Sie es vor dem Export. - DEPLOY — Set secrets in Netlify Environment Variables, not in code. Netlify → Site-Einstellungen → Erstellen und Bereitstellen → Umgebung. Fügen Sie dort Ihre Schlüssel hinzu, begrenzt auf Production.
- POST — Run Secrets in JavaScript Bundles on the deployed URL. Wenn ein Schlüssel die Netlify-Bereitstellung erreicht hat, wird er beim Scan gefunden.
Datenbankzugriffskontrolle (3 Artikel)
Bolt normalerweise Gerüste mit Supabase oder konvex. Beide verfügen über Standard-Öffnungsmodi, die explizite Richtlinien erfordern.
- 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. Jede Richtlinie sollte
auth.uid() = user_idoder ein Äquivalent ankreuzen. In den von Bolt generierten Richtlinien wird dies manchmal übersehen. - 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.
Authentifizierung und Sitzungen (4 Elemente)
Bolt generiert Express- oder Next.js-Authentifizierung. Das Risiko liegt in der Cookie-Konfiguration und der Token-Validierung.
- PRE — Ensure session cookies are
HttpOnly; Secure; SameSite=Lax. Bolt generiert manchmal Cookies ohne diese Flags. Überprüfen Sie sie manuell oder fügen Sie sie hinzu. - PRE — Check Bolt's generated auth handlers for server-side token verification. Wenn
getSession()verwendet wird, ersetzen Sie es durch eine verifizierte Backend-Suche. - PRE — Verify the sign-in redirect guard. Der Parameter
nextmuss mit/beginnen, niemals mit//. Bolt überspringt dies manchmal; Fügen Sie es bei Bedarf manuell hinzu. - POST — Test logout clears the session cookie. Anmelden, abmelden, Cookies prüfen. Das Sitzungscookie muss beim Abmelden gelöscht werden.
HTTP Header und CSP (3 Elemente)
Die Express/Next.js-Gerüste von Bolt enthalten selten CSP. Statische Hosts benötigen eine explizite Konfiguration.
- Das Express-Gerüst von PRE — Add middleware for security headers if using Express. Bolt benötigt manuelle Middleware für CSP, HSTS und X-Frame-Optionen.
- PRE — If using Next.js, ensure
src/middleware.tsexists with CSP. Bolt könnte das Gerüst bilden, aber überprüfen Sie, ob die CSP-Nonce-Logik korrekt ist. - POST — Run HTTP Security Headers on the deployed Netlify URL. Der Scan meldet fehlende Header.
Einsatzhygiene (5 Artikel)
Bolt exportiert nach GitHub und Netlify. Beide erfordern eine sorgfältige Konfiguration.
- DEPLOY — Ensure Bolt exports include
.gitignorewith.envlisted. Stellen Sie sicher, dass das GitHub-Repository nach dem Export keine.env-Dateien enthält. - DEPLOY — Set Netlify env vars via Site settings, not GitHub secrets. Netlifys Umgebungsvariablen werden im Ruhezustand verschlüsselt; GitHub Geheimnisse sind für CI gedacht, nicht für die Bereitstellung.
- DEPLOY — Audit the Netlify deploy log for secret echo. Wenn das Build-Protokoll eine Umgebungsvariable ausgibt, ist diese gefährdet.
- DEPLOY — Configure Netlify build command to not run
echo $SECRET. Überprüfen Sie Ihrepackage.jsonund erstellen Sie Skripte auf geheime Ausgaben. - POST — Verify Netlify redirect for HTTP → HTTPS exists. Bolt Apps sollten HTTPS erzwingen. Netlify kann dies über Einstellungen erzwingen.
Bolt-spezifische Fallstricke (3 Elemente)
Muster, die für den WebContainer-zu-Export-Ablauf von Bolt einzigartig sind:
- WebContainer isolation is lost on export. Bolts Entwicklungsumgebung isoliert Geheimnisse sicher, aber sobald Sie nach GitHub exportieren, sind Sie für
.gitignoreund die Umgebungsvar-Disziplin verantwortlich. - Treat the terminal and chat like a shared log. Don't paste credentials into either; put them in
.envor your host's environment settings. - Das Express-Gerüst von Express
cors({ origin: '*' })is the default. Bolt enthält oft freizügiges CORS. Ersetzen Sie durchcors({ origin: 'https://yourdomain.com', credentials: true }).
Nächste Schritte
Überprüfen Sie das general vibe coding security checklist für 51 werkzeugübergreifende Elemente. Siehe step-by-step hardening für CSP, RLS und Authentifizierungsmuster.
