Files
Lageplan/docs/legal/technical-organizational-measures.md
Pepe Ziberi a943db9c54 docs(legal)+test: Compliance-Dokumentation & Consent-Unit-Tests (v1.7.4)
Teil 5 des Compliance-Updates:

- docs/legal/: data-processing-inventory.md, subprocessors.md,
  technical-organizational-measures.md, retention-and-deletion.md, incident-response.md,
  licenses-and-attributions.md — Ist-Zustand aus der Analyse, offene Punkte als Platzhalter
- Reine Consent-Regeln nach src/lib/legal-rules.ts ausgelagert (kein Prisma) + Texte nach
  src/lib/legal-content.ts (7 Pflichtbestätigungen) — für Testbarkeit
- Vitest eingerichtet (vitest.config.ts, test-Script); 13 Tests grün:
  Pflicht-Dokumenttypen, Re-Consent bei neuer Version, normale Benutzer ≠ Org-Vertreter,
  7 Org-Bestätigungen, Platzhalter-Erkennung, keine erfundenen Subprozessoren

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-23 12:19:01 +02:00

3.3 KiB

Technische und organisatorische Massnahmen (TOM) — Lageplan

Stand: 2026-07-23 · sorgfältiger Entwurf. Ist-Zustand aus dem Code; offene Punkte klar markiert. Legende: vorhanden · ⚠️ teilweise / zu bestätigen · offen / nicht umgesetzt.

Zugriff & Berechtigungen

  • Mandantentrennung je Organisation (Tenant), getProjectWithTenantCheck.
  • Rollenkonzept: SERVER_ADMIN, TENANT_ADMIN, OPERATOR, VIEWER.
  • ⚠️ MFA für System-/Org-Admins: nicht vorhanden → Empfehlung offen.
  • Admin-APIs serverseitig mit isAdmin/isServerAdmin geschützt.

Authentifizierung & Sessions

  • Passwort-Hashing: bcrypt (cost 12), nie Klartext.
  • JWT-Session (jose, HS256), Cookie auth-token httpOnly, secure (prod), sameSite=lax, 24 h/14 Tage.
  • Passwort-Reset mit kryptographischem Token (32 Bytes), Ablauf.
  • E-Mail-Verifizierung.

Transport & Web-Härtung

  • HTTPS/TLS; HSTS (max-age 2 Jahre, preload).
  • Sicherheits-Header: CSP (mit frame-ancestors 'self'), X-Content-Type-Options nosniff, Referrer-Policy, Permissions-Policy, COOP, X-XSS-Protection.
  • ⚠️ CSP enthält unsafe-inline/unsafe-eval (für MapLibre gelockert) → langfristig verschärfen.
  • Private Routen (/app,/admin,/settings,/konto): X-Robots-Tag: noindex + Cache-Control: no-store (Middleware).
  • ⚠️ Socket.io-Server (server-custom.js): CORS origin:'*'einschränken empfohlen.

Eingaben & Uploads

  • Rate-Limiting: Login, Registrierung, Passwort-Reset, Verifizierung, Kontakt, Konto-Löschung, Share-PIN.
  • ⚠️ Rate-Limiter ist In-Memory (pro Instanz) → bei Mehr-Instanz-Betrieb geteilten Store nutzen.
  • ⚠️ Upload-Validierung (MIME/Grösse): vorhanden für Icons/Logos/Planbilder → Umfang bestätigen.
  • Zugriffsschutz auf Dateien (serve-Routen mit Tenant-Check).

Speicherung & Verschlüsselung

  • Übertragung verschlüsselt (TLS).
  • ⚠️ Verschlüsselung ruhender Daten (DB/MinIO/Backups): [ZU BESTÄTIGEN].
  • ⚠️ Secrets-Verwaltung: ENV (NEXTAUTH_SECRET, MinIO) + DB (SystemSetting: SMTP/Stripe) → Absicherung der DB-Secrets bestätigen.

Backup & Wiederherstellung

  • ⚠️ Backups: [VORHANDEN? FREQUENZ? AUFBEWAHRUNG?] (siehe docs/backup-und-seeding.md).
  • Restore-Tests: [DOKUMENTIEREN].

Logging & Monitoring

  • Server-Logs (console). ⚠️ Vermeidung sensibler Daten in Logs → Review empfohlen.
  • Zentrales Monitoring/Alerting: [OFFEN].

Betrieb & Prozesse

  • Idempotente Migrationen (prisma/migrate.js) beim Container-Start.
  • ⚠️ Dependency-/Patch-Management: [PROZESS DOKUMENTIEREN].
  • ⚠️ Trennung Entwicklung/Test/Produktion: [BESTÄTIGEN]; Umgang mit Testdaten [BESTÄTIGEN].
  • Löschkonzept/Datenexport: siehe retention-and-deletion.md; Betroffenenrechte via /konto/datenschutz.
  • Berechtigungsentzug: Benutzer sperren (isActive), aus Organisation entfernen.

Direkt umgesetzte risikoarme Verbesserungen (dieses Update)

  • Private Routen auf noindex/no-store gesetzt.
  • Rechtliche Prüf-Hinweise in Exporten und Berechnungen.
  • Revisionssichere Zustimmungsprotokollierung ohne roh-IP.

Empfohlene, noch offene Massnahmen

  • MFA für Admins; CSP verschärfen; Socket.io-CORS einschränken; geteilter Rate-Limit-Store; Verschlüsselung ruhender Daten + Backups bestätigen; Restore-Tests; Monitoring.