Zum Inhalt springen

Prüfregel · RSC-SEC-050

Tabellen ohne Row Level Security

SicherheitSchweregrad: HochCWE-284OWASP A01-2021

Sammelt alle `create table` und alle `enable row level security` über sämtliche Migrationen und meldet Tabellen, die nie geschützt werden.

Warum das zählt

Row Level Security ist die Zugriffskontrolle in der Datenbank selbst: Regeln entscheiden pro Datenzeile, wer sie lesen oder ändern darf. Ist RLS auf einer Tabelle nicht aktiviert, gibt es für diese Tabelle schlicht keine Beschränkung.

Der Denkfehler dahinter ist verbreitet: Der Login sieht sicher aus, also fühlt sich die App sicher an. Aber der Login regelt nur, wer die Oberfläche sieht. Die Datenbank spricht direkt mit dem Browser — und ohne RLS kann jeder mit dem öffentlichen anon-Key alle Zeilen aller Nutzer abfragen, ganz am Login vorbei.

Wir melden das anhand eurer Migrationsdateien: Wird eine Tabelle angelegt, ohne dass an irgendeiner Stelle RLS für sie aktiviert wird, steht sie hier. Fix: Für jede Tabelle RLS einschalten und mindestens eine Policy anlegen, die den Zugriff an den angemeldeten Nutzer bindet.

Prüfstufe

Quellcode aus Source MapsRepo-Zugang (Deep-Scan)

So behebt ihr es

Für jede Tabelle RLS aktivieren und mindestens eine nutzerbezogene Policy anlegen.

Eigene App kostenlos prüfen