Sicherheit·Lovable
SicherheitLovable

API-Keys aus dem Client-Bundle entfernenLovable

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 Lovable fixen

AI Full-Stack-App-Builder (React + Vite + Supabase)

Lovable läuft React auf Vite. `VITE_`-prefixierte Vars leaken zum Client. Secrets OHNE `VITE_`-Prefix in Lovable → Secrets, dann von Server-Route aufrufen.

Lovable-Fallstricke:

  • !Alles mit `VITE_*` ist by Design client-sichtbar — nie einen Service-Role-Key dort ablegen.

Anderes Tool? Wähle deinen Stack:

Der Prompt für Lovable

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

Fix my Lovable app — please make these exact changes in the Lovable editor:

CRITICAL: Move exposed API keys server-side immediately

1. I have accidentally exposed API keys in my frontend code. This is a critical security issue.
2. Move ALL API keys (OpenAI, Stripe, Anthropic, Supabase Service Role, AWS, SendGrid, etc.) to Supabase Edge Functions.
3. Create a Supabase Edge Function that makes the API call server-side and return only the result to the frontend.
4. Only the Supabase Anon Key should remain in the frontend code — everything else must be in Edge Function secrets.
5. After moving the keys, go to each provider dashboard and rotate/regenerate all leaked keys immediately — assume they are compromised.
6. Add /.env, /.env.local, and /.env.production to your .gitignore if not already there.

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 Lovable

  1. 1. Dein Lovable-Projekt öffnen.
  2. 2. Prompt oben mit Copy-Button kopieren.
  3. 3. In Lovable-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 Lovable-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 Lovable-Prompts