Analytics Legends LogoAI & Analytics Legends AnmeldenRegistrieren
Sicherheitsrichtlinie · RFC 9116

Sicherheit.

Stand

Zuletzt aktualisiert: 2. September 2026

Transport und Härtung

Der gesamte Verkehr läuft über HTTPS (TLS 1.2+) mit HSTS, durchgesetzt am Edge von GitHub Pages. Die Content-Security-Policy beschränkt Skripte auf dieselbe Herkunft zuzüglich plausible.io (seit dem 24. September 2026 inaktiv) und www.googletagmanager.com, das erst nach ausdrücklicher Einwilligung in Google Analytics geladen wird (kein eval). style-src ist 'self' 'unsafe-inline' — Inline-Styles sind erlaubt, weil die React-Anwendung Inline-Style-Objekte rendert; eingeschleuste <style>-Tags werden daher heute nicht von der CSP blockiert (ein bekannter Kompromiss; ihn aufzulösen hieße, jeden Inline-Style auszulagern). Zahlungs-Frames sind auf Stripe beschränkt. MIME-Sniffing ist unterbunden (nosniff), Referrer-Lecks ebenfalls (strict-origin-when-cross-origin). Die Permissions-Policy deaktiviert Standortbestimmung, Kamera und Mikrofon. Die CSP wird deklariert über <meta http-equiv> in index.html; HSTS wird von GitHub Pages selbst gesendet. Hinweis: X-Frame-Options und die CSP-Direktive frame-ancestors lassen sich laut Spezifikation ausschließlich als HTTP-Header ausliefern und damit nicht über das Meta-Tag eines statischen Hosts. Die Domain wird inzwischen hinter Cloudflare ausgeliefert, das diese Header am Edge setzt: gemessen am 2. September 2026 antwortet die Herkunft mit X-Frame-Options: DENY, Permissions-Policy (Kamera, Mikrofon, Standort, Zahlung, USB und interest-cohort deaktiviert), Referrer-Policy: strict-origin-when-cross-origin, X-Content-Type-Options: nosniff und Strict-Transport-Security mit Preload. Der Schutz vor Clickjacking ist damit wirksam und nicht bloß erwünscht.

Infrastruktur

Statisches Frontend. Globales Edge-Netz von GitHub Pages (Fastly-CDN) mit DDoS-Abwehr am Edge. Die Herkunft, die die Anwendung ausliefert, ist vollständig statisch: kein eigener Anwendungsserver, kein serverseitiges Rendering, kein Anwendungscode, der auf dieser Herkunft ausgeführt wird. Die /api/*-Endpunkte dort sind statisches JSON.

Datenebene. Die Daten liegen in Supabase (verwaltetes PostgreSQL) und werden vom Browser über PostgREST und eine kleine Zahl von Deno-Edge-Functions gelesen — die sehr wohl Benutzereingaben verarbeiten (JWTs, Formulardaten, Stripe-Webhooks). Autorisierung ist damit nicht „konstruktionsbedingt ausgeschlossen“: Sie beruht auf Row-Level Security in PostgreSQL und auf der JWT-Prüfung je Funktion, im Zweifel schließend. Die serverseitigen OWASP-Top-10-Risiken, die das statische Frontend tatsächlich beseitigt, sind jene, die einen eigenen Anwendungsserver voraussetzen (serverseitiges XSS, Deserialisierung, SSRF von der Web-Herkunft aus); SQLi, IDOR und fehlerhafte Zugriffskontrolle bleiben Risiken, die in Supabase beherrscht werden — nicht Risiken, die es nicht gäbe.

Supabase-Anbindung

v36 führt eine Laufzeitsicherung ein: Dekodiert der eingespielte REACT_APP_SUPABASE_ANON_KEY zu role=service_role, verweigert der Client den Start. Das fängt versehentlich durchgereichte service_role-Schlüssel aus verwechselten CI-Secrets ab, bevor sie eine Browsersitzung erreichen.

Abhängigkeiten

Aktuelle Laufzeitabhängigkeiten: React, @supabase/supabase-js, @fontsource (Fraunces variable, Geist Sans, JetBrains Mono), fflate, pdfjs-dist, topojson-client und world-atlas. package.json ist stets die maßgebliche, aktuelle Liste. react-scripts wurde in v36 aufgegeben (das Projekt läuft auf Vite), was rund 1 200 transitive Pakete und zahlreiche Meldungen geringer Schwere entfernt hat. Dependabot öffnet wöchentlich Pull Requests für npm- und Actions-Aktualisierungen.

Verantwortungsvolle Offenlegung

Schreiben Sie an security@analyticslegends.ai. Bitte gewähren Sie 90 Tage bis zur öffentlichen Bekanntgabe. Eingangsbestätigung binnen 72 Stunden, Behebung binnen 30 Tagen bei Schwachstellen hoher Schwere. Maschinenlesbar unter /.well-known/security.txt.

Nicht im Geltungsbereich

Schwachstellen im gehosteten Checkout von Stripe (zu melden an stripe.com/security), in der Infrastruktur von GitHub (zu melden an bounty.github.com), auf Websites Dritter, auf die wir verlinken, sowie Social Engineering gegenüber den Konten des Betreibers.