2nd Brain

SicherheitsPlan

/home/darth/Documents/Mardowns/10_Projekte/aktuell_27.11/docs/SicherheitsPlan.md

Sicherheitsplan – Web-App & Backend

Ziel

Nur zahlende, nicht gesperrte Nutzer dürfen geschützte Endpoints und die Web-App nutzen; Online-Aktivität wird konsistent erfasst.

Maßnahmen (technisch)

  1. Zentrale Auth/Membership-Middleware

    • Für alle geschützten Routen: x-user-email + x-device-id prüfen, User laden, userEmailBlocked und validBis > now prüfen, Gerät in UUidList erzwingen (maxUUids beachten).
    • Alle relevanten Routen hinter diese Middleware hängen (z.B. readAirports, Admin-APIs, Menü, Status).
  2. Token/Session statt nur Header

    • Nach Login signierten Token (JWT oder HttpOnly-Session) ausgeben; Token enthält email, deviceId, evtl. Rolle.
    • Token wird bei jedem Request geprüft; Invalidierung bei Sperre/Ablauf.
  3. Konsistentes Activity-Tracking im User-Datensatz

    • Bei jedem authentifizierten Request: letzterBesuch = now, optional siteVisits/siteVisitsWith push (limitiert).
    • Counts (H/D/All) nur aus letzterBesuch + validBis in muc4taxiusers ableiten.
    • UserOnlineListe nur Übergang/Fallback, perspektivisch entfernen.
  4. Gerätelimit/Sperren einheitlich

    • In der Middleware: wenn deviceId nicht in UUidList und Limit erreicht → deny/sperren; Sperrlisten respektieren.
    • Migration/Alt-Flags (z.B. isUUidMigrated) endgültig abschalten, damit keine Alt-Sperren entstehen.
  5. Cleanup & Schema-Hygiene

    • Unbenutzte Felder entfernen oder ignorieren (istOnline, newUUidList, UUidVersion, etc.), um Verwirrung zu vermeiden.
    • UserOnlineListe nur lesen, bis direktes Tracking stabil läuft, dann ausphasen.
  6. Client-Speicherung nicht als Schutz ansehen

    • LocalStorage-AES ist obfuskation; keine Sicherheitsentscheidung darauf.
    • Keine Geheimnisse im Frontend; Auth-Entscheidungen immer serverseitig.
  7. Rate-Limits & Abuse-Schutz

    • Login/aktivitätsrelevante Endpoints mit Rate-Limit und Logging absichern.
    • Fehlgeschlagene Logins/Device-Mismatches protokollieren, ggf. blockieren.

Priorisierte Reihenfolge

  1. Middleware globalisieren (Punkt 1) und readAirports & Co. dranhängen.
  2. Activity-Update in derselben Middleware implementieren (Punkt 3).
  3. Token-basierte Auth nachziehen (Punkt 2).
  4. Counts auf letzterBesuch umstellen; UserOnlineListe nur noch als Fallback (Punkt 3/5).
  5. Schema-/Feld-Cleanup und Deaktivierung von Alt-Migrationen (Punkt 4/5).
  6. Rate-Limits und Logging ergänzen (Punkt 7).
Attachments
Noch keine.