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:
+9
-1
@@ -67,5 +67,13 @@ ENTRYPOINT ["kleiderboerse-entrypoint.sh"]
|
||||
# --proxy-headers: hinter einem Reverse-Proxy stünde sonst dessen IP in
|
||||
# jedem Rate-Limit, und ein einzelner Besucher sperrte alle anderen aus.
|
||||
# Ausserdem erkennt die App darüber, ob der Browser per HTTPS verbunden ist.
|
||||
#
|
||||
# WEM die X-Forwarded-*-Kopfzeilen geglaubt werden, steuert
|
||||
# FORWARDED_ALLOW_IPS - uvicorn liest die Variable selbst aus der Umgebung
|
||||
# (ohne Wert: nur 127.0.0.1). Früher stand hier "--forwarded-allow-ips *":
|
||||
# damit durfte jeder, der den Port direkt erreicht, die Absender-IP frei
|
||||
# erfinden - pro erfundener IP ein frischer Rate-Limit-Zähler, und die
|
||||
# Limits sind das Einzige vor dem Reservieren-Endpunkt. Im Betrieb die
|
||||
# Adresse des Proxys eintragen (siehe docker-compose.betrieb.yml).
|
||||
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000", \
|
||||
"--proxy-headers", "--forwarded-allow-ips", "*"]
|
||||
"--proxy-headers"]
|
||||
|
||||
Reference in New Issue
Block a user