✓ Checkliste: DSGVO-Maßnahmen auf einen Blick
✅
Server-Standort Deutschland (Hetzner, Nürnberg)
✅
TLS 1.2/1.3 Verschlüsselung aller Verbindungen
✅
Mandantentrennung: eigene Datenbank pro Verein
✅
SSH Key-Only Authentifizierung (kein Passwort-Login)
✅
Firewall (ufw) + Fail2Ban Brute-Force-Schutz
✅
CSRF-Token-Validierung auf allen Formularen
✅
Prepared Statements (SQL-Injection-Schutz)
✅
Passwort-Hashing mit bcrypt
✅
Verschlüsselte Speicherung von DB-Credentials (Sodium)
✅
Tägliche automatische Backups (7-Tage-Rolling)
✅
Rollenbasiertes Berechtigungssystem (30+ Module)
✅
Keine Datenweitergabe an Dritte (außer Stripe für Zahlungen)
✅
Betroffenenrechte technisch unterstützt (Auskunft, Löschung, Export)
1. Zutrittskontrolle (physisch)
- Server bei Hetzner Cloud, Rechenzentrum Nürnberg (ISO 27001 zertifiziert)
- Physischer Zugang nur durch Hetzner-Mitarbeiter (Biometrie, Schleuse)
- Keine eigene Hardware, kein physischer Zutritt durch WizClub
2. Zugangskontrolle (logisch)
- SSH-Zugang nur per Ed25519-Key-Authentication (kein Passwort-Login)
- Root-Login über SSH deaktiviert
- Fail2Ban sperrt IPs nach 5 Fehlversuchen (10 Min Sperre)
- Firewall (ufw): nur Ports 22 (SSH), 80/443 (HTTP/S) geöffnet
- Separate Benutzer für Systemadministration und Webserver
3. Zugriffskontrolle (Autorisierung)
- Rollenbasiertes Berechtigungssystem: Admin, Member, Pending
- Feingranulare Modul-Scopes (30+ Module mit je 2-8 Berechtigungsstufen)
- Gruppen-basierte Rechtevergabe mit Vererbung
- User-spezifische Overrides (allow/deny)
- Entitlement-System: Plan-basierte Modul-Freischaltung pro Verein
4. Weitergabekontrolle
- TLS 1.2/1.3 (Let’s Encrypt) für alle Verbindungen
- HTTP wird automatisch auf HTTPS redirected
- Stripe-Webhooks mit HMAC-SHA256 Signatur-Verifikation
- Keine Weitergabe personenbezogener Daten an Dritte (außer Stripe für Zahlungen)
5. Eingabekontrolle
- CSRF-Token-Validierung auf allen POST-Requests
- Prepared Statements (PDO) gegen SQL-Injection
- HTML-Escaping in allen Views (XSS-Schutz)
- Passwort-Hashing mit
password_hash() (bcrypt)
- Sodium-Verschlüsselung für Tenant-DB-Passwörter
6. Verfügbarkeitskontrolle
- Tägliche automatische Snapshots (Hetzner, 7-Tage-Rolling)
- PHP OPcache für Performance
- MariaDB mit InnoDB (Crash-Recovery)
- Separate Control-Plane und Tenant-Datenbanken
7. Trennungsgebot (Mandantentrennung)
- Jeder Verein hat eine eigene Datenbank
- Separate DB-Benutzer pro Verein mit Zugriff nur auf die eigene DB
- Control-Plane-Datenbank getrennt von Vereinsdaten
- Verschlüsselte Speicherung der DB-Credentials (Sodium Secretbox)
- Kein Cross-Tenant-Datenzugriff möglich
8. Datenverarbeitung
| Kategorie | Daten | Zweck |
| Mitgliederdaten | Name, Geburtsdatum, Adresse, E-Mail, Telefon | Vereinsverwaltung |
| Finanzdaten | IBAN, BIC, Kontoinhaber | Beitragseinzug (SEPA) |
| Nutzungsdaten | Login-Zeitpunkte, Session-IDs | Sicherheit, Funktionalität |
| Zahlungsdaten | Stripe Customer-ID, Subscription-ID | Abonnement-Verwaltung |
Serverstandort: Hetzner Cloud, Nürnberg, Deutschland. Keine Datenübertragung in Drittländer (außer Stripe Inc., USA — mit Standard-Vertragsklauseln).
9. Unterauftragsverarbeiter
| Anbieter | Zweck | Standort |
| Hetzner Online GmbH | Server-Hosting | Nürnberg, DE |
| Stripe Inc. | Zahlungsabwicklung | USA (mit SCCs) |
| Let’s Encrypt | TLS-Zertifikate | USA (kein Datenzugriff) |
| Cloudflare Inc. | DNS-Hosting (DNS only) | USA (kein Proxy) |
10. Betroffenenrechte (Art. 15-22 DSGVO)
| Recht | Technische Umsetzung |
| Auskunft (Art. 15) | Export aller Daten pro Mitglied (CSV/JSON) |
| Berichtigung (Art. 16) | Daten im Mitglieder-Modul bearbeitbar |
| Löschung (Art. 17) | Soft-Delete + Hard-Delete nach Frist |
| Datenübertragbarkeit (Art. 20) | Export als CSV/JSON |
| Widerspruch (Art. 21) | Consent-Flags pro Mitglied rückziehbar |