Sicherheitsarchitektur
Analytics House läuft in isolierten V8-Sandboxes von Cloudflare Workers, gestützt auf parametrisierte SQLite-Abfragen in Cloudflare D1, strikte Mandantentrennung und automatisierte End-to-End-Sicherheitsprüfungen.
1. Authentifizierung & Absicherung von Zugangsdaten
- Passwort-Hashing: Passwörter werden mit WebCrypto
PBKDF2-SHA256mit 100.000 Iterationen und einem eigenen zufälligen 128-Bit-Salt pro Nutzer gehasht. Die Prüfung verwendet einen Bytevergleich in konstanter Zeit, um Timing-Seitenkanäle zu verhindern. - Sitzungs- & Reset-Tokens: Sitzungen verwenden signierte
HS256-JWTs mit 7 Tagen Gültigkeit. Links zum Zurücksetzen des Passworts verwenden einmalig gültige Zufallstokens, die nur alsSHA-256-Digests gespeichert werden und nach 1 Stunde ablaufen. - Rate-Limiting am Edge: Anmeldeversuche, Registrierungen, Passwort-Resets, Ereigniserfassung (pro Projekt und pro IP/Relay), Testversand von Berichten und API-Endpunkte sind durch Rate-Limiter mit gleitendem Zeitfenster geschützt, die
429 Too Many RequestsmitRetry-After-Header zurückgeben.
2. Mandantentrennung & rollenbasierte Zugriffskontrolle (RBAC)
- Strikte Mandantenbindung: Jede SQL-Abfrage bindet
project_idund prüft vor der Ausführung die Projektmitgliedschaft. Nicht autorisierte Anfragen erhalten404 Not Found, sodass sich Projekt-IDs nicht durch Ausprobieren ermitteln lassen. - Rollen Inhaber, Administrator & Betrachter: Betrachter haben nur Lesezugriff auf aggregierte Dashboards; Exporte von Rohereignissen sind gesperrt (
403), und in Rohereignis-Feeds werdenuser_id,session_id,visitor_idundcityfür Betrachter automatisch unkenntlich gemacht. - Eingeschränkte, schreibgeschützte Statistik-API-Schlüssel (
ea_sk_...): In D1 werden nur derSHA-256-Hash und ein 12-stelliges Präfix gespeichert. Statistikschlüssel können nie Rohereignisse lesen, Einstellungen verwalten oder den API-Schlüssel für die Datenerfassung offenlegen.
3. Lieferketten- & Webhook-Sicherheit
- Subresource Integrity (SRI): Der Bereich „Datenschutz & Einstellungen“ jedes Projekts berechnet live den
sha384-...-Integritäts-Digest von/tracker.js, damit Websites die exakten Skript-Bytes in ihrem HTML-Tag<script integrity="...">festlegen können. - Gegen SSRF gehärtete Benachrichtigungs-Webhooks: Ausgehende Webhooks für Slack, Discord und eigene Benachrichtigungen erzwingen ausschließlich
https://und blockieren localhost, Loopback, Link-Local und private IP-Bereiche nach RFC 1918. - Schutz vor CSV-Injection: Alle CSV-Exporte entschärfen Zellen, die mit Formelzeichen beginnen (
=,+,-,@, Tab, CR). - HTTP-Sicherheitsheader: Antworten erzwingen
X-Content-Type-Options: nosniff,X-Frame-Options: DENY,Referrer-Policy: strict-origin-when-cross-originund eine strikte CORS-Allowlist für Origins.
4. Verfügbarkeitsüberwachung & Responsible Disclosure
Live-Prüfungen von Datenbank und Worker laufen alle 15 Minuten und werden auf der öffentlichen Seite Systemstatus veröffentlicht. Um eine Sicherheitslücke zu melden, schreiben Sie an contact@analytics.house oder kontaktieren Sie uns über Kontakt & Support.