// 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.
シークレットと API キー (5 項目)
Bolt の WebContainer はブラウザ上で実行されます。 GitHub または Netlify にエクスポートすると、シークレットが分離されたコンテナからパブリック リポジトリに移動されます。
- 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. Bolt の開発コンテナは.envを適切に分離しますが、GitHub にエクスポートする場合、.envは.gitignoreになければなりません。 - PRE — Confirm
.gitignoreexcludes.env,.env.local,.env.*.local. Bolt は通常、これを正しくスキャフォールディングしますが、エクスポートする前に確認してください。 - DEPLOY — Set secrets in Netlify Environment Variables, not in code. Netlify → サイト設定 → ビルドとデプロイ → 環境。 Production をスコープとしてそこにキーを追加します。
- POST — Run Secrets in JavaScript Bundles on the deployed URL. キーが Netlify デプロイに到達すると、スキャンによってそのキーが検出されます。
データベースアクセス制御(3項目)
Bolt は通常 Supabase または Convex で足場を作ります。どちらも、明示的なポリシーを必要とするデフォルトオープンモードを備えています。
- 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. すべてのポリシーは
auth.uid() = user_idまたは同等のものをチェックする必要があります。 Bolt が生成したポリシーはこれを見逃すことがあります。 - 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.
認証とセッション (4 項目)
Bolt は Express 認証または Next.js 認証を生成します。リスクは Cookie の構成とトークンの検証にあります。
- PRE — Ensure session cookies are
HttpOnly; Secure; SameSite=Lax. Bolt は、これらのフラグなしで Cookie を生成することがあります。手動で確認または追加します。 - PRE — Check Bolt's generated auth handlers for server-side token verification.
getSession()が使用されている場合は、検証済みのバックエンド ルックアップに置き換えます。 - PRE — Verify the sign-in redirect guard.
nextパラメータは/で始める必要があり、//は使用できません。 Bolt はこれをスキップすることがあります。必要に応じて手動で追加します。 - POST — Test logout clears the session cookie. サインイン、サインアウト、Cookie の検査。セッション Cookie はログアウト時に削除する必要があります。
HTTP ヘッダーと CSP (3 項目)
Bolt の Express/Next.js 足場に CSP が含まれることはほとんどありません。静的ホストには明示的な構成が必要です。
- PRE — Add middleware for security headers if using Express. Bolt の Express scaffold には、CSP、HSTS、X-Frame-Options 用の手動ミドルウェアが必要です。
- PRE — If using Next.js, ensure
src/middleware.tsexists with CSP. Bolt はそれをスキャフォールディングする可能性がありますが、CSP nonce ロジックが正しいことを確認してください。 - POST — Run HTTP Security Headers on the deployed Netlify URL. スキャンではヘッダーの欠落が報告されました。
展開時の衛生管理 (5 項目)
Bolt は GitHub と Netlify にエクスポートします。どちらも慎重な構成が必要です。
- DEPLOY — Ensure Bolt exports include
.gitignorewith.envlisted. エクスポート後に GitHub リポジトリに.envファイルがないことを確認します。 - DEPLOY — Set Netlify env vars via Site settings, not GitHub secrets. Netlify の環境変数は保存時に暗号化されます。 GitHub シークレットは、デプロイメント用ではなく、CI 用に設計されています。
- DEPLOY — Audit the Netlify deploy log for secret echo. ビルド ログに環境変数が出力される場合、それは侵害されています。
- DEPLOY — Configure Netlify build command to not run
echo $SECRET.package.jsonを確認し、シークレット出力がないかスクリプトを作成します。 - POST — Verify Netlify redirect for HTTP → HTTPS exists. Bolt アプリは HTTPS を強制する必要があります。 Netlify は設定を通じてこれを強制できます。
Bolt 特有の注意点 (3 項目)
Bolt の WebContainer からエクスポートまでのフローに特有のパターン:
- WebContainer isolation is lost on export. Bolt の開発環境は秘密を安全に分離しますが、GitHub にエクスポートした後は、
.gitignoreと 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. Bolt の Express 足場には寛容な CORS が含まれることがよくあります。cors({ origin: 'https://yourdomain.com', credentials: true })に置き換えます。
次のステップ
51 個のクロスツール項目については general vibe coding security checklist を確認してください。 CSP、RLS、および認証パターンについては、step-by-step hardening を参照してください。
