Ich prüfe deine Supabase RLS und finde das Datenleck, das dein Linter nicht erkennt

C
cengo3509
C
cengo3509
Cenk Kurtoglu
Einige Informationen wurden automatisch übersetzt.

Über diesen Service

Automatische Übersetzung

Dein Supabase Linter sagt, alles ist in Ordnung. Das ist nicht dasselbe wie sicher zu sein.


Der Linter prüft, ob Richtlinien existieren. Er überprüft nicht, ob sie korrekt sind. Ich lese die Richtlinien selbst und finde die Lecks, die jede automatisierte Prüfung passieren.


WAS ICH SUCH


- Verwendung von (true) ohne Rolleneinschränkung, sodass anon Zugriff erbt, der für angemeldete Nutzer gedacht ist

- Join- und Mitgliedschaftstabellen, die nicht isoliert sind und es einem Mieter erlauben, auf die Zeilen eines anderen Mieters zuzugreifen

- Service-Rolle-Schlüssel, die vom Client-Code aus erreichbar sind und RLS vollständig umgehen

- Nachsichtige Richtlinien, die restriktive Richtlinien stillschweigend aufheben

- RLS aktiviert ohne Richtlinie oder offene Storage-Buckets


WAS DU BEKOMMST


Ein Bericht über jeden echten Fund, nach Schweregrad sortiert, mit dem genauen SQL, das ihn auf deiner Datenbank reproduziert. Wenn deine Richtlinien sicher sind, sage ich das klar, anstatt Probleme zu erfinden.


Standard-Add-ons sind korrigierte Richtlinien als einsatzbereite Migrationen. Premium fügt eine pgTAP-Suite hinzu, die bei der anfälligen Richtlinie fehlschlägt und bei der Korrektur besteht.


Nur Lesezugriff oder ein Schema-Dump reicht aus.


Ich veröffentliche eine reproduzierbare RLS-Leck-Demo und deren Korrektur auf GitHub, und die Supabase-Sicherheit hat meine Analyse eines echten Problems bestätigt. Melde dich zuerst bei mir.

Lerne Cenk Kurtoglu kennen

Cenk Kurtoglu

Supabase RLS security audits

  • AusTürkei
  • Mitglied seitJuni 2024
  • Sprachen

    Türkisch, Englisch
I audit Supabase authorization boundaries for teams shipping on Lovable, Bolt, Cursor and Replit. The generated SQL is usually valid. What it misses is whether a policy that exists is actually correct: a permissive policy quietly cancelling a restrictive one, a membership join that is not isolated, or a service-role key reachable from a client path. All three pass Supabase's free linter, and all three pass tests written from a single account. I work from read-only access or a sanitized schema dump. I never need your service-role key.

Automatische Übersetzung