API-Keys aus dem Client-Bundle entfernen — Cursor
Keys im JavaScript-Bundle sind public. Angreifer scannen GitHub und Deploys 24/7. Ein exponierter Stripe-Secret oder OpenAI-Key leert dein Konto in Stunden.
In Cursor fixen
Agentischer AI-Code-Editor auf VSCode-Basis
Next.js: `NEXT_PUBLIC_*` ist Client, alles andere server-only. Secrets via `process.env.*` aus Server-Component, Server-Action oder `app/api/*/route.ts` lesen.
Dateien in Cursor:
.env.localapp/api/**/route.tsAnderes Tool? Wähle deinen Stack:
Der Prompt für Cursor
Diesen Text exakt so in deinen Cursor-Chat kopieren und einfügen.
Apply these changes to my codebase. Edit the files directly and keep existing formatting: CRITICAL: Move exposed API keys server-side immediately 1. CRITICAL: API keys are exposed in the frontend. Move all keys to environment variables immediately. 2. Create a server-side API route (app/api/) for each external API call that needs a secret key. 3. Remove any hardcoded secrets from client-side code — only use process.env.* in server components and API routes. 4. Never prefix secret keys with NEXT_PUBLIC_ — that exposes them to the browser. 5. Add .env* to .gitignore immediately. 6. Rotate every leaked key in the provider dashboard — assume they are compromised.
Warum das wichtig ist
Jedes AI-Coding-Tool hat beim Stripe-/OpenAI-/Supabase-Integrieren irgendwann den Secret-Key direkt in eine React-Komponente geschrieben. Die Komponente wird zum Browser ausgeliefert, der Browser lädt das JS-Bundle, der Secret ist für immer public — auch nach dem "Fix" haben Angreifer die das Bundle scrapten den alten Key noch.
Automatische Bots crawlen GitHub, npm, Vercel-Deploys und Lovable-Shares nach exponierten Keys. Zeit von "Key gepusht" bis "Key missbraucht": oft unter 30 Sekunden. OpenAI hat ein Team das darauf wacht und Keys automatisch rotiert — aber nur wenn die Detection vor dem Angreifer zuschlägt.
Das ist unser #1-Security-Finding in Lovable- und Bolt-Audits. Der Fix ist immer derselbe: Key in server-only Env-Var, Backend-API-Route die den Secret nutzt, Client ruft diese Route auf.
So nutzt du diesen Prompt in Cursor
- 1. Dein Cursor-Projekt öffnen.
- 2. Prompt oben mit Copy-Button kopieren.
- 3. In Cursor-Chat einfügen und senden.
- 4. Diff reviewen, Änderungen akzeptieren, neu deployen.
- 5. Fix mit der Checkliste unten verifizieren.
Typische Fehler vermeiden
- error_outline`NEXT_PUBLIC_STRIPE_SECRET_KEY` nutzen — der Prefix machte es public. Jedes `NEXT_PUBLIC_*` shippt zum Browser.
- error_outlineOpenAI direkt aus React-Komponente aufrufen — Key kommt mit JS-Bundle.
- error_outline`.env` statt `.env.local` in Git committen — `.env` wird oft per Default getrackt.
- error_outlineSupabase `service_role`-Key im Client — umgeht RLS und liest/schreibt alles.
- error_outlineKey in API-Route shippen, aber bei Error `process.env` loggen und in Logs leaken.
Wie du prüfst ob der Fix geklappt hat
- check_circleDevTools → Sources → nach dem Key-Wert suchen — muss 0 Treffer liefern.
- check_circle`curl https://deinesite.com/ | grep "sk_live"` — liefert nichts für Stripe-Secret-Keys.
- check_circleNach Exposure rotieren — alte Keys sind für immer kompromittiert, auch wenn "entfernt".
- check_circleGitGuardian oder git-secrets im Repo einrichten für Pre-Commit-Leak-Detection.
Häufige Fragen
Unterschied zwischen Anon- und Service-Role-Supabase-Keys?expand_more
Woher weiss ich ob mein Key geleakt ist?expand_more
Ist Git-History ein Problem wenn ich den Key gelöscht habe?expand_more
Alle 34 Prompts passend zu deiner Cursor-Site?
Pantra scannt deine Site in 10 Sekunden, erkennt den Stack und generiert genau die Prompts die passen — nur die du brauchst.
Site scannenÄhnliche Cursor-Prompts
Supabase Row Level Security auf jeder Tabelle aktivieren — Cursor
Prompt um RLS auf jeder Supabase-Tabelle zu aktivieren und sinnvolle Policies zu schreiben — der #1-Security-Fix für Lovable, Cursor, Bolt, v0, Replit, Windsurf, Claude Code, Base44 Apps.
SicherheitSecurity-Header setzen (CSP, HSTS, X-Frame usw.) — Cursor
Stack-spezifischer Prompt für Content-Security-Policy, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy in Lovable, Cursor, Bolt, v0, Replit, Windsurf, Claude Code, Base44.
SicherheitHTTPS erzwingen und HSTS aktivieren — Cursor
Prompt um alles HTTP auf HTTPS zu redirecten und HSTS zu aktivieren — 2026 Pflicht. In jedem Stack.