Zwei Kommentare versprachen Schutz, den es nicht gab. Das ist schlimmer
als eine fehlende Zusage, weil man sich darauf verlaesst:
- In middleware.ts stand "Ohne Authentifizierungs-Cookie gar nicht erst
weiterreichen". Die Middleware prueft keine Anmeldung, sie setzt
Kopfzeilen; die Liste steuert allein den Cache-Control-Kopf. Wer den
Satz glaubt, verzichtet an einer neuen Seite auf erfordereBenutzer().
Die Liste heisst jetzt OHNE_CACHE_SPERRE und sagt selbst, was sie ist.
- In datei.ts hiess es, die Pfadpruefung fange "Symlink-Tricks" ab.
resolve() rechnet mit Zeichenketten und folgt keinem Link - dafuer
braeuchte es realpath(). Nachgeruestet wird es nicht: Wer dort einen
Symlink anlegen kann, hat schon Schreibrechte im Datenverzeichnis. Der
Satz musste trotzdem weg.
Dazu docs/SICHERHEIT.md: Bedrohungsmodell, der Durchgang entlang der
OWASP Top 10 - und ein eigener Abschnitt darueber, was ausdruecklich NICHT
geschuetzt ist.
Aus dem OWASP-Durchgang kamen keine weiteren Funde. Zwei Stellen sahen
danach aus und waren es nicht: Prisma.join() in suche.ts fuegt nur bereits
parametrisierte Fragmente zusammen, und der Suchausschnitt mit den
<mark>-Markern aus ts_headline wird zerlegt und als React-Kinder
gerendert, nicht als HTML - obwohl die Quelle der OCR-Text hochgeladener
Dokumente ist.
Refs #38