Zum Inhalt springen

Prüfregel · RSC-SEC-064

Zugriffsprüfung erst nach dem Schreibzugriff

SicherheitSchweregrad: HochCWE-862OWASP A01-2021

Vergleicht die Position von Auth-Aufruf und Datenbank-Schreibvorgang im selben Funktionskörper und meldet, wenn geprüft wird, nachdem geschrieben wurde.

Warum das zählt

Eine Zugriffsprüfung wirkt nur, wenn sie den zu schützenden Vorgang verhindern kann. Steht sie hinter dem Schreibaufruf, ist die Zeile längst in der Datenbank, wenn geprüft wird — der Abbruch verhindert dann höchstens noch die Antwort, nicht die Änderung.

Der Fall entsteht typischerweise nachträglich: Die Funktion war erst offen, später kam ein Auth-Check dazu, und er landete dort, wo gerade Platz war — oft direkt vor dem `return`, weil dort die Fehlerbehandlung steht. Im Review liest sich das plausibel, weil die Prüfung ja sichtbar vorhanden ist.

So prüft ihr es selbst: In jeder Funktion, die schreibt, muss der erste inhaltliche Schritt die Identitätsprüfung mit sofortigem Abbruch sein. Alles, was davor steht, darf keine Daten verändern.

Prüfstufe

Quellcode aus Source MapsRepo-Zugang (Deep-Scan)

So behebt ihr es

Auth-Aufruf und Abbruch an den Anfang der Funktion ziehen, vor jeden Schreibvorgang.

Eigene App kostenlos prüfen