Tabellen ohne Row Level Security
Prüfregel · RSC-SEC-050
- Sicherheit
- Schweregrad: Hoch
- CWE-284
- OWASP 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 Maps
- Repo-Zugang (Deep-Scan)
So behebt ihr es
Für jede Tabelle RLS aktivieren und mindestens eine nutzerbezogene Policy anlegen.