Commit graph

5 commits

Author SHA1 Message Date
dc999d3c2c Abhaengigkeiten aktualisiert, npm audit meldet keine Lücken mehr
Der Stand war grossteils Express-Generator-Boilerplate von 2018 und brachte 19
gemeldete Schwachstellen mit, 4 davon kritisch. Jetzt: 0.

Sicherheitsrelevant:
- express 4.16.4 -> 4.22.2 behebt DoS in body-parser, die cookie-Lücke,
  path-to-regexp, qs sowie Template-Injection/XSS in send und serve-static
- hbs 4.0.6 -> 4.2.1 zieht handlebars nach; die alte Fassung hatte vier
  kritische Meldungen, darunter Remote Code Execution beim Kompilieren von
  Templates
- socket.io 4.7.5 -> 4.8.3 samt Sub-Abhaengigkeiten behebt die unbegrenzte Zahl
  binaerer Attachments und die Memory-Exhaustion in socket.io-parser sowie
  mehrere DoS-Pfade in ws — beides genau der Pfad, der im Betrieb offen im WLAN
  haengt
- cookie-parser, morgan, debug und http-errors auf aktuelle Fassungen

Entfernt: express-ws und ws als direkte Abhaengigkeiten. Beide wurden nirgends
importiert — die WebSocket-Verbindung laeuft ueber socket.io, das sein eigenes
ws mitbringt.

Express bleibt bewusst auf 4.x. Der Sprung auf 5 ist ein Major mit Aenderungen
an Router und Fehlerbehandlung und bringt hier keinen Sicherheitsgewinn.

Verifiziert auf Node 24.19: alle drei Monitoransichten, Adminpanel, 404-Seite
und der komplette Socket.IO-Durchlauf (score, timerDurationLeft, timerEnded,
scoreSideswitch, refresh, Reconnect) unveraendert in Ordnung, keine
Deprecation-Warnungen im Log.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 22:06:39 +02:00
92eb59d2ef Teamdatenbank ohne lowdb, Pfad unabhaengig vom Startverzeichnis
lowdb v7 ist ESM-only, das Projekt ist CommonJS. Der bisherige Umweg ueber
eine async IIFE mit await import() hatte zur Folge, dass db bei einem sehr
fruehen Request noch undefined sein konnte.

Fuer eine Liste von Teamnamen genuegt fs: read/write lesen und schreiben
db.json direkt und synchron, die Race-Condition entfaellt und lowdb kann als
Abhaengigkeit raus. Die exportierte API bleibt unveraendert, score.js und
routes/admin.js brauchen keine Anpassung.

Der Pfad zu db.json wird jetzt ueber __dirname aufgeloest statt relativ zum
Arbeitsverzeichnis, damit die Datei unabhaengig vom Startverzeichnis immer
an derselben Stelle liegt. Fehlt oder bricht die Datei, wird auf eine leere
Teamliste zurueckgefallen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 20:39:12 +02:00
8f402058ad Added db with team selection, scoreboard enabled by default, Added Debugwindow, cleanup 2024-06-02 22:30:39 +02:00
7d181ca315 Added socketio, and moment 2024-04-21 12:48:59 +02:00
36d9c066f4 Installed express 2024-04-07 13:44:51 +02:00