Auth-Ergebnis wird nie ausgewertet
Prüfregel · RSC-SEC-065
- Sicherheit
- Schweregrad: Hoch
- CWE-862
- OWASP A01-2021
Meldet Funktionen, die die Identität abfragen, das Ergebnis aber weder prüfen noch an den Schreibvorgang binden — der Aufruf bleibt wirkungslos.
Warum das zählt
`await supabase.auth.getUser()` schützt nichts. Der Aufruf liefert einen Wert; erst was ihr mit dem Wert tut, ist die Zugriffsprüfung. Fehlt das `if (!user) throw`, läuft die Funktion für anonyme Aufrufer genauso durch wie für angemeldete.
Genau das produzieren Code-Generatoren zuverlässig: Das Muster „Benutzer laden“ gehört sichtbar zum Stil sicherer Server-Funktionen, die Konsequenz daraus ist aber kein Muster, sondern eine Entscheidung — und die trifft das Modell nicht. Ein Review, das nach `getUser` sucht, findet den Aufruf und hakt ab.
So prüft ihr es selbst: Sucht jede Stelle mit `getUser`, `getSession` oder `auth()` und lest die nächsten fünf Zeilen. Steht dort kein Abbruch und taucht der Benutzerwert auch nicht in den geschriebenen Daten auf, ist die Prüfung Dekoration.
Prüfstufe
- Quellcode aus Source Maps
- Repo-Zugang (Deep-Scan)
So behebt ihr es
Ergebnis prüfen und bei fehlendem Benutzer abbrechen, oder die Benutzer-ID in die geschriebenen Daten binden.