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)
-
Zentrale Auth/Membership-Middleware
- Für alle geschützten Routen:
x-user-email+x-device-idprüfen, User laden,userEmailBlockedundvalidBis > nowprüfen, Gerät inUUidListerzwingen (maxUUids beachten). - Alle relevanten Routen hinter diese Middleware hängen (z.B.
readAirports, Admin-APIs, Menü, Status).
- Für alle geschützten Routen:
-
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.
- Nach Login signierten Token (JWT oder HttpOnly-Session) ausgeben; Token enthält
-
Konsistentes Activity-Tracking im User-Datensatz
- Bei jedem authentifizierten Request:
letzterBesuch = now, optionalsiteVisits/siteVisitsWithpush (limitiert). - Counts (H/D/All) nur aus
letzterBesuch+validBisinmuc4taxiusersableiten. UserOnlineListenur Übergang/Fallback, perspektivisch entfernen.
- Bei jedem authentifizierten Request:
-
Gerätelimit/Sperren einheitlich
- In der Middleware: wenn deviceId nicht in
UUidListund Limit erreicht → deny/sperren; Sperrlisten respektieren. - Migration/Alt-Flags (z.B.
isUUidMigrated) endgültig abschalten, damit keine Alt-Sperren entstehen.
- In der Middleware: wenn deviceId nicht in
-
Cleanup & Schema-Hygiene
- Unbenutzte Felder entfernen oder ignorieren (
istOnline,newUUidList,UUidVersion, etc.), um Verwirrung zu vermeiden. UserOnlineListenur lesen, bis direktes Tracking stabil läuft, dann ausphasen.
- Unbenutzte Felder entfernen oder ignorieren (
-
Client-Speicherung nicht als Schutz ansehen
- LocalStorage-AES ist obfuskation; keine Sicherheitsentscheidung darauf.
- Keine Geheimnisse im Frontend; Auth-Entscheidungen immer serverseitig.
-
Rate-Limits & Abuse-Schutz
- Login/aktivitätsrelevante Endpoints mit Rate-Limit und Logging absichern.
- Fehlgeschlagene Logins/Device-Mismatches protokollieren, ggf. blockieren.
Priorisierte Reihenfolge
- Middleware globalisieren (Punkt 1) und
readAirports& Co. dranhängen. - Activity-Update in derselben Middleware implementieren (Punkt 3).
- Token-basierte Auth nachziehen (Punkt 2).
- Counts auf
letzterBesuchumstellen;UserOnlineListenur noch als Fallback (Punkt 3/5). - Schema-/Feld-Cleanup und Deaktivierung von Alt-Migrationen (Punkt 4/5).
- Rate-Limits und Logging ergänzen (Punkt 7).