Prüfregel · RSC-SEC-051
RLS-Policy erlaubt allen Zugriff
Findet Policies mit `using (true)` — RLS ist aktiv, wirkt aber nicht.
Warum das zählt
Diese Regel findet den heimtückischeren Fall: RLS ist aktiviert, aber die Policy lautet sinngemäß „erlaube allen alles“ (using (true)). In jeder Übersicht steht dann ein grünes Häkchen — geschützt ist trotzdem nichts.
Solche Policies entstehen fast immer beim Debuggen. Etwas funktioniert nicht, die Regel wird zum Testen weit geöffnet, danach vergisst man sie. Für die App ändert sich nichts Sichtbares, deshalb fällt es nie auf.
Fix: Jede Policy an die Identität binden — typischerweise auth.uid() = user_id — statt an true. Prüft dabei jede Operation einzeln: Häufig ist SELECT sauber eingeschränkt, während UPDATE oder DELETE noch offen stehen.
Prüfstufe
So behebt ihr es
Policy auf den Eigentümer einschränken, z. B. `using (auth.uid() = user_id)`.