Prüfregel · RSC-SEC-103
Kostenpflichtige Serverfunktion ohne Zugangsschutz
Findet Edge Functions, die ein KI-Modell, SMS oder Mailversand aufrufen, ohne den Aufrufer zu prüfen oder die Menge zu begrenzen — jeder kann damit Kosten auf eure Rechnung auslösen.
Warum das zählt
KI-Funktionen in Lovable-, Bolt- und v0-Apps laufen fast immer als Supabase Edge Function: Der Browser ruft sie mit dem öffentlichen Schlüssel aus dem Bundle auf, die Funktion ruft mit eurem geheimen Schlüssel das Modell. Wer das Bundle liest, kann denselben Aufruf in einer Schleife wiederholen.
Die Token-Prüfung von Supabase (`verify_jwt`) hilft dabei nicht: Der klassische öffentliche Schlüssel ist selbst ein gültiger Token. Supabase begrenzt eingehende Aufrufe von Edge Functions nicht, und das Lovable AI Gateway begrenzt pro Workspace, nicht pro Endnutzer. Die einzige Schranke ist der Funktionscode.
Fix: Für Funktionen hinter einem Login den Nutzer mit `supabase.auth.getUser()` prüfen und ohne Nutzer mit 401 abbrechen. Für öffentliche Funktionen (Chatbot auf der Startseite, Kontaktformular) eine Begrenzung je IP und ein Captcha einbauen. Beim Anbieter zusätzlich ein Ausgabenlimit setzen.
Prüfstufe
So behebt ihr es
Am Anfang der Funktion supabase.auth.getUser() mit dem Authorization-Header prüfen und eine Begrenzung je Nutzer oder IP einbauen; öffentliche Formulare zusätzlich mit Captcha schützen.