Prüfen Sie, was Ihr Supabase-Projekt der Welt zeigt
Der anon key soll öffentlich sein. Der Schutz ist Row Level Security — und der eine Schlüssel, der sie umgeht, darf nie im Browser landen. Wir prüfen beides von außen, so wie ein Angreifer es tun würde, ohne Ihre Daten anzufassen.
Kostenlos, ohne Anmeldung. Die Basisprüfung stellt nur Anfragen, die auch ein normaler Browser stellt.
Was wir prüfen
- KritischKostenlose Prüfung
service_role- oder sb_secret-Key im Frontend
Beide umgehen Row Level Security vollständig. Wir durchsuchen die Seite und ihre Skripte und zeigen den Schlüssel geschwärzt, zusammen mit der Datei, in der er steckt.
- KritischPro
Tabellen, lesbar mit dem anon key
Nach der Domain-Bestätigung senden wir eine HEAD-Anfrage pro Tabelle, die die App nutzt, und melden, wie viele Zeilen jeder lesen könnte. Inhalte werden nie abgerufen.
- HinweisPro
Durch RLS geschützte Tabellen
Tabellen, die dem anon key null Zeilen liefern, werden ebenfalls aufgeführt — so sehen Sie, dass die Policy ihren Job macht.
- HinweisKostenlose Prüfung
Mit welchem Projekt die App spricht
Das Supabase-Projekt und der Schlüsseltyp, die auf der Seite gefunden wurden — der anon oder publishable key ist erwartet und kein Fund.
Selbst prüfen in fünf Minuten
Alles, was wir von außen prüfen, können Sie in Ihrem eigenen Dashboard und Terminal prüfen. Tun Sie das nur bei Ihrem eigenen Projekt.
Tabellen ohne Row Level Security auflisten
Supabase-Dashboard → SQL Editor. Jede öffentliche Tabelle mit rowsecurity = false ist mit dem anon-Schlüssel lesbar, wenn die Standard-Grants bestehen. Der Security Advisor (Advisors → Security) zeigt dieselbe Liste.
select tablename, rowsecurity from pg_tables where schemaname = 'public' order by rowsecurity, tablename;
Als Fremder ausprobieren
Nehmen Sie den anon-Schlüssel Ihrer Website — denselben, den jeder Besucher hat. Liefert das Zeilen, dann auch für jeden anderen.
curl 'https://<project>.supabase.co/rest/v1/<table>?select=*&limit=1' \ -H "apikey: <anon key>" \ -H "Authorization: Bearer <anon key>"
Sicherstellen, dass der geheime Schlüssel nie im Browser gelandet ist
Öffnen Sie auf Ihrer Live-Website die DevTools und durchsuchen Sie alle geladenen Dateien (Cmd/Ctrl + Option/Alt + F) nach service_role und sb_secret_. Jeder Treffer heißt: Schlüssel in Project Settings → API rotieren, dann diesen Code in eine Edge Function verschieben.
RLS aktivieren und eine Policy hinzufügen
RLS ohne Policy blockiert alles — fügen Sie eine hinzu, die dazu passt, wie die Tabelle genutzt wird. Für eine Tabelle mit Benutzerprofilen:
alter table public.profiles enable row level security; create policy "read own profile" on public.profiles for select using (auth.uid() = id);
Eine Lösung, die Ihre KI umsetzen kann
Der Prompt aus dem Bericht nennt die Tabellen und das genaue Problem und bittet Ihre KI, RLS mit Policies zu aktivieren, die dazu passen, wie die App jede Tabelle nutzt.
Behebe diese Probleme auf app.example.com. 1. Die Tabelle "profiles" liefert dem anon key 1.240 Zeilen. Aktiviere Row Level Security darauf und füge eine Policy hinzu, damit Nutzer nur ihre eigene Zeile per select lesen können (auth.uid() = id). 2. Die Tabelle "orders" liefert dem anon key 87 Zeilen. Aktiviere RLS; erlaube select nur dem Besitzer der Bestellung. Wenn du fertig bist, prüfe erneut: https://scanyoursite.app/de?check=app.example.com
Neue Tabelle, neues Risiko
Jede Migration kann eine Tabelle ohne Policy hinzufügen. Mit Pro läuft die Tabellenprüfung bei jeder geplanten Prüfung, und von einer neu offenen Tabelle erfahren Sie noch am selben Tag.
Tarife ansehenFragen
Warum muss ich für die Tabellenprüfung meine Domain bestätigen?
Eine Datenbank abzufragen geht über das hinaus, was ein Browser auf einer Seite tut, deshalb machen wir das nur für den Inhaber. Die Bestätigung erfolgt per DNS-Eintrag, Datei oder Meta-Tag.
Speichern Sie meine Daten?
Nein. Wir zählen Zeilen mit einer HEAD-Anfrage und speichern nur die Zahl und den Tabellennamen.
Ist der anon key ein Leck?
Nein. Er ist absichtlich öffentlich. Wir führen ihn als Hinweis, nicht als Problem.
URL einfügen. Die Liste kommt in etwa einer Minute.
Zu jedem Fund steht, was er für Sie bedeutet und wie Sie ihn beheben — oder ein Prompt, den Ihr KI-Coding-Tool umsetzen kann.
Kostenlos, ohne Anmeldung. Die Basisprüfung stellt nur Anfragen, die auch ein normaler Browser stellt.