[Bug] <img>-Tags laden nicht bei aktivem APP_PASSWORD #32

Closed
opened 2026-05-27 14:45:48 +02:00 by ferdi2go · 1 comment
Owner

Problem (vorbestehend, beim E2E-Test entdeckt)

Mit APP_PASSWORD gesetzt schlaegt jedes <img src="preview?path=..."> mit HTTP 401 fehl, weil der Browser bei <img>-Requests keinen Authorization-Header sendet. Betrifft:

  • Tinder-Modus Hauptbild (tinder-img)
  • Review-Liste Thumbnails (makeThumb)
  • Lightbox (Vollbild-Anzeige)
  • Favoriten-Vorschau

Fix

_extract_token(request) akzeptiert Token jetzt aus Authorization-Header oder ?_t=-Query-Param. Frontend nutzt neuen Helper imgUrl(endpoint, path, extra), der den aktuellen Token automatisch anhaengt.

Security-Erwaegung: Token im URL-Query taucht im Browser-History und Referer auf. Referer-Leak wird durch Referrer-Policy: strict-origin-when-cross-origin (Issue #17) abgemildert, der Token bleibt im Browser-Tab. Bei Single-User-Mode und sessionStorage-Speicherung ohnehin ein vergleichbares Risikoprofil wie der Bearer-Token selbst.

Test

  • GET /preview?path=...&_t=GUELTIG -> 200
  • GET /preview?path=... (kein Token) -> 401
  • GET /preview?path=...&_t=falsch -> 401
## Problem (vorbestehend, beim E2E-Test entdeckt) Mit `APP_PASSWORD` gesetzt schlaegt jedes `<img src="preview?path=...">` mit HTTP 401 fehl, weil der Browser bei `<img>`-Requests keinen `Authorization`-Header sendet. Betrifft: - Tinder-Modus Hauptbild (`tinder-img`) - Review-Liste Thumbnails (`makeThumb`) - Lightbox (Vollbild-Anzeige) - Favoriten-Vorschau ## Fix `_extract_token(request)` akzeptiert Token jetzt aus Authorization-Header **oder** `?_t=`-Query-Param. Frontend nutzt neuen Helper `imgUrl(endpoint, path, extra)`, der den aktuellen Token automatisch anhaengt. Security-Erwaegung: Token im URL-Query taucht im Browser-History und Referer auf. Referer-Leak wird durch `Referrer-Policy: strict-origin-when-cross-origin` (Issue #17) abgemildert, der Token bleibt im Browser-Tab. Bei Single-User-Mode und sessionStorage-Speicherung ohnehin ein vergleichbares Risikoprofil wie der Bearer-Token selbst. ## Test - `GET /preview?path=...&_t=GUELTIG` -> 200 - `GET /preview?path=...` (kein Token) -> 401 - `GET /preview?path=...&_t=falsch` -> 401
ferdi2go added the priority: highbug labels 2026-05-27 14:45:48 +02:00
Author
Owner

Fix umgesetzt, siehe Issue-Body. Backend-Smoketest:

  • Gueltiger Token via Query -> 200
  • Kein Token -> 401
  • Falscher Token -> 401
  • /thumb mit Query-Token -> 200
Fix umgesetzt, siehe Issue-Body. Backend-Smoketest: - Gueltiger Token via Query -> 200 - Kein Token -> 401 - Falscher Token -> 401 - `/thumb` mit Query-Token -> 200
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ferdi2go/OnlyFrames#32