Sicherheit·Windsurf
SicherheitWindsurf

API-Keys aus dem Client-Bundle entfernenWindsurf

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.

rocket_launch

In Windsurf fixen

Codeium agentische AI-IDE mit Cascade

Wie Cursor — `.env.local` plus server-only Imports. Cascade bitten den Key-Namen über das ganze Projekt zu greppen und Leaks zu finden.

Anderes Tool? Wähle deinen Stack:

Der Prompt für Windsurf

Diesen Text exakt so in deinen Windsurf-Chat kopieren und einfügen.

Using Windsurf Cascade, apply these edits across the project in one pass:

CRITICAL: Move exposed API keys server-side immediately

1. CRITICAL: API keys are exposed in the frontend code. This is an immediate security risk.
2. Move all secret keys to server-side environment variables.
3. Create server-side endpoints that make API calls on behalf of the frontend.
4. Only public/anon keys should ever be in client-side code.
5. Rotate all leaked keys immediately in each provider dashboard.
6. Add .env* to .gitignore.

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 Windsurf

  1. 1. Dein Windsurf-Projekt öffnen.
  2. 2. Prompt oben mit Copy-Button kopieren.
  3. 3. In Windsurf-Chat einfügen und senden.
  4. 4. Diff reviewen, Änderungen akzeptieren, neu deployen.
  5. 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
Der Anon-Key ist by Design public und vertraut auf RLS. Der Service-Role-Key umgeht RLS komplett — darf NIEMALS zum Client.
Woher weiss ich ob mein Key geleakt ist?expand_more
Provider-Dashboard auf ungewöhnliche Nutzung prüfen, Deployed-Bundle mit `curl URL | grep "sk_"` scannen, Public-GitHub-Repo durchsuchen falls gepusht.
Ist Git-History ein Problem wenn ich den Key gelöscht habe?expand_more
Ja — der Key ist noch in Git-History und Rotation ist der einzige echte Fix. `git filter-repo` für History-Purge, aber immer zuerst rotieren.

Alle 34 Prompts passend zu deiner Windsurf-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 Windsurf-Prompts