Sicherheit, klar benannt.

Keine Badge-Wand: die konkreten, überprüfbaren Kontrollen, die heute im Produkt stecken. Stellen Sie harte Fragen: hello@pauli.xyz.

Transport & Authentifizierung

  • Nur-TLS-Ingress. Die API bindet an Loopback; der einzige öffentliche Einstiegspunkt terminiert TLS, Bearer-Schlüssel reisen also nie im Klartext.
  • Schlüssel werden gehasht, einmal angezeigt. SHA-256-Hashes im Ruhezustand; Klartext genau einmal zurückgegeben, bei Erstellung oder Rotation. Rotation und Widerruf wirken sofort.
  • Workspace-Isolation bei jeder Abfrage. Auf der Persistenzschicht gescopet; mandantenübergreifende Lesezugriffe liefern 404, nicht 403.
  • Ratenbegrenzung pro Schlüssel. Token-Buckets in Redis; fail-open oder fail-closed ist eine Betreiberentscheidung.

Webhooks

  • Signierte Payloads. Zeitgestempeltes HMAC-SHA256 (X-Pauli-Signature) über die exakten Payload-Bytes, sodass eine mitgeschnittene Zustellung nur innerhalb Ihrer Prüf-Toleranz wiederholbar ist; Rotationen signieren während eines Übergangsfensters mit altem und neuem Secret. X-Pauli-Event-Id dedupliziert.
  • SSRF-Wächter, zweifach. Nur-https-Webhook-URLs, abgelehnt, wenn sie nicht-öffentlich auflösen (Loopback, RFC 1918, Link-Local, Cloud-Metadaten) — beim Einreichen geprüft und bei der Zustellung erneut, gegen DNS-Rebinding. Immer aktiv; kein Ausschalter.

Geld & Datenintegrität

  • Decimal von Ende zu Ende. Geld durchläuft nie Gleitkommazahlen; API-Beträge sind exakte Dezimal-Strings.
  • Genau-einmal-Abrechnung, von der Datenbank erzwungen. Partielle Unique-Indizes sichern Berechnungen, Abbuchungen und Erstattungen; Wiederholungen und erneute Zustellungen können weder doppelt belasten noch doppelt gutschreiben.
  • Zahlungen werden nur bei bestätigtem Geldeingang gutgeschrieben. Stripe-Webhooks werden signaturgeprüft mit Replay-Toleranz; ein Status-Compare-and-Swap macht die Gutschrift idempotent.
  • Append-only-Audit-Log. Schlüssel-Lebenszyklus, Job-Ereignisse, Abrechnung, Compliance-Entscheidungen und fehlgeschlagene Authentifizierung, geschrieben in derselben Transaktion wie die Aktion.

Betrieb

  • Eine einzige Quelle der Wahrheit. Postgres hält den gesamten Zustand; der Verlust der Queue verliert keine Jobs, Ergebnisse oder Gelder.
  • Crash-sichere Verarbeitung. Worker beanspruchen Jobs mit Leases und committen an jeder Phasengrenze; Sweeps leiten jede Arbeit neu ab, die ein toter Prozess fallen ließ.
  • Verifizierte Backups. Wiederherstellungs-getestet nach Zeitplan (ein nicht wiederhergestelltes Backup ist kein Backup); verschlüsselte Kopien verlassen den Host.
  • Fehler geben nie Interna preis. 5xx-Bodies enthalten nur einen stabilen Code und eine Request-ID; Details bleiben in serverseitigen Logs.
  • Öffentliche Statusseite. Außerhalb unserer Infrastruktur gehostet unter status.pauli.xyz, damit sie erreichbar bleibt, wenn wir es nicht sind.

Compliance-Haltung

  • Exportkontroll-Gate im Router. Kontrollierte Hardware routet nur zu geprüften Workspaces mit deklarierter Jurisdiktion; jede Ablehnung wird auditiert.
  • Denied-Party-Screening. Jede Screening-Entscheidung wird auditiert; das Routing liest sie bei jeder Anfrage.
Zu SOC 2: Wir zertifizieren, sobald Kunden es verlangen, und beantworten Sicherheitsfragebögen auf Anfrage.

Eine Schwachstelle melden

Schicken Sie Reproduktionsschritte an hello@pauli.xyz. Wir bestätigen den Eingang innerhalb von zwei Werktagen und gehen nicht rechtlich gegen Forschung in gutem Glauben vor.