X-Forwarded-For nur noch dem Proxy glauben, Durchsicht vom 14.09. notiert

Das CMD startete uvicorn mit --forwarded-allow-ips "*": jeder, der den
Container-Port direkt erreicht, konnte die Absender-IP frei erfinden und
bekam pro erfundener IP einen frischen Rate-Limit-Zaehler - und die
Limits sind das Einzige vor dem frei zugaenglichen Reservieren-Endpunkt.
Zusaetzlich liess sich so die HTTPS-Erkennung fuers Sitzungs-Cookie
faelschen.

Jetzt liest uvicorn die Grenze aus FORWARDED_ALLOW_IPS (ohne Wert: nur
127.0.0.1, also keinem externen Absender trauen). docker-compose.betrieb.yml
reicht die Variable mit Erklaerung durch; das README beschreibt, welche
Adresse hineingehoert und dass der Port nur fuer den Proxy erreichbar
sein darf. Wird die Variable nicht gesetzt, teilen sich alle Besucher
die Zaehler ueber die Proxy-IP - das kleinere Uebel.

Plan-Verbesserungen.md: Ergebnis der erneuten Durchsicht vom 14.09.2026
ergaenzt (GZip/Cache/Sicherung vom 13.09. nachgeprueft und fuer gut
befunden; drei P3-Funde: oeffentlicher 500er ueber ?limit=abc, nicht
atomares Reservieren, 500 statt Fehlermeldung in Betreiber-Formularen).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-14 17:19:12 +02:00
co-authored by Claude Fable 5
parent f3ac3d526e
commit 33c728411f
4 changed files with 119 additions and 1 deletions
+7
View File
@@ -81,6 +81,13 @@ Die App gehört hinter einen Reverse-Proxy, der HTTPS beendet. Wichtig dabei:
die App nicht, dass der Browser verschlüsselt verbunden ist, und alle
Rate-Limits zählen auf die Adresse des Proxys ein einzelner Besucher
sperrte damit alle anderen aus.
- `FORWARDED_ALLOW_IPS` auf die Adresse setzen, mit der der Proxy im
Container ankommt (siehe Kommentar in `docker-compose.betrieb.yml`).
Ohne den Wert werden die Kopfzeilen ignoriert; mit `"*"` könnte jeder,
der den Container-Port direkt erreicht, die Absender-IP erfinden und
damit die Rate-Limits umgehen.
- Der veröffentlichte Port (`8090`) gehört hinter die Firewall: erreichbar
nur für den Proxy, nicht aus dem Internet.
- `COOKIE_HTTPS_ONLY` auf `"true"` lassen.
Die Galerie ist frei zugänglich, wird aber per `noindex` und `robots.txt`