Rechtliches

Sicherheit

Was hier steht, sind Eigenschaften des laufenden Systems, keine Absichten. Die meisten davon sind durch automatisierte Tests abgesichert, die bei jeder Änderung laufen.

Mandanten sind in der Datenbank getrennt, nicht in der Oberfläche

Jeder Arbeitsbereich sieht ausschließlich seine eigenen Daten. Durchgesetzt wird das nicht von der Anwendung, sondern von der Datenbank selbst: Auf jeder Tabelle mit Mandantenbezug ist Row Level Security aktiviert und erzwungen — letzteres bedeutet, dass selbst der Eigentümer der Tabelle die Regeln nicht umgeht.

Praktisch heißt das: Auch ein Fehler in unserem Code kann keine fremden Daten herausgeben, weil die Abfrage schon in der Datenbank leer zurückkommt. Unsere Testsuite prüft genau das — sie versucht bei jedem Durchlauf, als Mandant A auf Daten von Mandant B zuzugreifen, und besteht nur, wenn es scheitert.

Geheimnisse werden nicht im Klartext gespeichert

API-Schlüssel, Webhook-Geheimnisse und Einladungs-Token liegen ausschließlich als kryptografischer Abdruck in eigenen Tabellen, die aus dem Browser überhaupt nicht erreichbar sind. Den vollständigen Schlüssel sehen Sie genau einmal — bei der Erstellung. Danach kann ihn niemand mehr auslesen, auch wir nicht.

Passwörter verwaltet Supabase Auth und legt sie ausschließlich gehasht ab. Zahlungsdaten berühren unsere Systeme nie; Karten werden direkt bei Stripe eingegeben.

Die öffentlichen Seiten sammeln nichts

Beim Scannen eines Aufstellers speichern wir, welcher Aufsteller wann gescannt wurde — ohne IP-Adresse, ohne Gerätekennung, ohne Angaben zum Browser. Die Bewertungsseite setzt kein einziges Cookie und bindet keine Analyse- oder Werbedienste ein.

Ein Klick auf ein Bewertungsportal wird als Klick gezählt, nicht als abgegebene Bewertung. Was auf dem Portal danach passiert, erfahren wir nicht — und geben es folglich auch nicht als Zahl aus.

Schnittstellen und Zustellungen

Jeder API-Schlüssel trägt nur die Berechtigungen, die er braucht, und lässt sich sofort widerrufen. Schreibende Aufrufe akzeptieren einen Idempotenzschlüssel: Ein wiederholter Versuch nach einem Netzwerkfehler legt nichts doppelt an.

Ausgehende Webhooks sind signiert und mit Zeitstempel versehen, damit Ihr System eine Meldung prüfen und eine wiedereingespielte erkennen kann. Ziele werden vor jeder Zustellung geprüft: Adressen im internen Netz, im Loopback oder bei Cloud-Metadatendiensten werden abgelehnt, Weiterleitungen nicht verfolgt.

Eingehende Zahlungsereignisse werden gegen die Signatur des Zahlungsanbieters geprüft, bevor ein einziges Feld gelesen wird, und jedes Ereignis wird höchstens einmal angewandt.

Wo alles läuft

Datenbank, Dateispeicher und Anmeldung bei Supabase in eu-central-1 (Frankfurt am Main). Die Anwendung bei Vercel, festgelegt auf die Region fra1 — ebenfalls Frankfurt. Die Verbindung ist durchgehend verschlüsselt; HSTS ist gesetzt.

Das Dashboard und die Bewertungsseiten lassen sich nicht in fremde Seiten einbetten; nur das ausdrücklich dafür vorgesehene Widget ist einbettbar, und das ausschließlich auf den Domains, die der jeweilige Betrieb selbst freigegeben hat.

Aufbewahrung und Löschung

Personenbezogene Angaben werden automatisch gelöscht, sobald ihr Zweck erfüllt ist — die Fristen laufen täglich und sind keine Absichtserklärung. Welche Frist für welche Angabe gilt, steht in der Datenschutzerklärung.

Sicherheitsrelevante Vorgänge werden in einem Protokoll festgehalten, das aus dem Browser nicht verändert und nicht gelöscht werden kann.

Eine Lücke melden

Wenn Sie etwas gefunden haben, schreiben Sie bitte zuerst an security@roccnova.com und nicht in die Öffentlichkeit. Wir bestätigen den Eingang und melden uns mit einer Einschätzung zurück.

Bitte testen Sie nur an Ihrem eigenen Arbeitsbereich, greifen Sie nicht auf fremde Daten zu und beeinträchtigen Sie den Betrieb nicht. Wer sich daran hält, hat von uns nichts zu befürchten.

Was wir nicht behaupten

Wir sind nicht nach ISO 27001 oder SOC 2 zertifiziert. Wir arbeiten an den dort üblichen Grundsätzen entlang — geringste nötige Rechte, Trennung von Mandanten, keine Geheimnisse im Klartext, nachvollziehbare Änderungen —, aber ein Zertifikat ist etwas anderes als eine Arbeitsweise, und wir schreiben hier nur hin, was wir belegen können.