service_role key und Sicherheit
Was ist der Unterschied zwischen anon key und service_role key?
Der anon key spricht als Rolle anon und unterliegt der Row Level Security. Der service_role key umgeht RLS vollständig — er ist als Schlüssel für den Server gedacht und liest jede Zeile jeder Tabelle, unabhängig von jeder Policy. Der anon key gehört deshalb in den Browser und ist dort kein Problem; der service_role key gehört ausschließlich in eine Server-Umgebungsvariable, und wenn er jemals in einem Client-Bundle, in einem Repository oder in einer NEXT_PUBLIC_-Variable gelandet ist, ist er kompromittiert und muss rotiert werden — nicht nur entfernt.
Warum Entfernen nicht reicht
Ein Schlüssel, der einmal in einem Commit stand, steht weiterhin in der Historie. Ein Schlüssel, der einmal in einem JavaScript-Bundle ausgeliefert wurde, liegt in Caches, in Logs und möglicherweise bereits in einer Sammlung.
Deshalb beginnt jede ehrliche Anleitung mit der Rotation und nicht mit dem Löschen. Aus demselben Grund öffnet Sentris für gefundene Secrets bewusst keinen automatischen Pull Request: ein Commit, der den Schlüssel aus der Datei nimmt, erzeugt das Gefühl von Sicherheit und ändert an der Kompromittierung nichts.
Die Reihenfolge, wenn der Schlüssel draußen ist
Erstens rotieren: im Supabase-Dashboard unter Project Settings → API. Zweitens die neue Variable in der Server-Umgebung setzen und deployen. Drittens den Fund aus dem Code entfernen. Viertens prüfen, welche Tabellen dieser Schlüssel erreichen konnte — also alle — und ob in den Logs Zugriffe stehen, die nicht von Ihnen kamen.
Der vierte Schritt wird meist ausgelassen und ist der einzige, der die Frage beantwortet, ob aus dem Vorfall ein Datenschutzvorfall geworden ist.
NEXT_PUBLIC_ ist eine Anweisung, kein Namensschema
Alles, was in Next.js mit NEXT_PUBLIC_ beginnt, wird zur Build-Zeit in das Browser-Bundle eingesetzt. Ein Server-Geheimnis unter diesem Präfix ist kein Konfigurationsfehler mit Restrisiko, sondern eine Veröffentlichung.
NEXT_PUBLIC_SUPABASE_ANON_KEY ist dagegen korrekt und wird von Sentris nie gemeldet — die Regeln unterscheiden nach Fähigkeit des Schlüssels, nicht nach Zeichenmuster. Das ist der Grund, warum unsere gemessene False-Positive-Rate veröffentlicht werden kann.
Sentris prüft diese vier Punkte automatisch
Ein Scan braucht keinen Account und kostet nichts — Sie sehen die Anzahl der Funde, bevor Sie irgendetwas bezahlen. Wie oft wir dabei danebenliegen, steht gemessen und mit Datum unter /precision; das veröffentlicht in diesem Markt sonst niemand. Gerichtsstand Schweiz, AVV und Unterauftragsverarbeiter sind öffentlich einsehbar.
App scannenSentris is evidence of technical measures taken. It is not evidence of GDPR compliance, and nobody selling a tool can issue that.