Files
d4rk_media/docs
D4rkst3randClaude Opus 5 92b49a59a5 fix: /api/exists gab ohne Token Auskunft -- der Proxy hatte sie zwischengespeichert
GEMESSEN, nicht vermutet: ein GET auf

    https://fivemanage.d4rkst3r.de/api/exists/vehicles/adder.webp

antwortet OHNE Authorization-Kopf mit 200 und voller Auskunft -- Pfad, Groesse,
SHA-256, Zeitpunkt. Nicht weil die Pruefung fehlt, sondern weil Nginx Proxy
Manager die berechtigte Antwort weggelegt hat und sie danach an jeden ausliefert.

Der Grund steht in dessen assets.conf und greift auf JEDE URL mit Bildendung:

    location ~* ^.*\.(css|js|jpe?g|gif|png|webp|...)$ {
        proxy_cache public-cache;
        proxy_cache_key $host$request_uri;          <- ohne Authorization
        proxy_ignore_headers Set-Cookie Cache-Control Expires ...;
        proxy_cache_valid any 30m;
    }

Unser eigenes Cache-Control hilft nicht, proxy_ignore_headers wirft es weg. Und
es geht auch andersherum: landet zuerst ein 401 im Zwischenspeicher, bekommen
ihn 30 Minuten lang alle -- auch die mit gueltigem Token.

Der Block "location ^~ /api/ { proxy_cache off; }" schliesst das. Aber eine
ZUGANGSPRUEFUNG, DIE AN EINER ZEILE IN EINER FREMDEN OBERFLAECHE HAENGT, IST
KEINE: sie ueberlebt kein Neuanlegen des Proxy-Hosts und keinen Umzug.

Deshalb eine zweite Form, die von sich aus dicht ist:

    GET /api/exists?pfad=vehicles/adder.webp

Die Abfrage zaehlt fuer die location-Regel nicht mit, die URL endet also nie auf
eine Bildendung. Gemessen: mit Token 200, ohne Token 401, und KEINE
Cache-Control-Kopfzeile vom Proxy -- die Regel greift nicht.

Die alte Form bleibt, weil das Fotostudio sie benutzt (server/upload.lua:185).
Dokumentation und die API-Seite im Dashboard nennen ab jetzt nur noch die neue.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 23:00:27 +02:00
..