Handhabung der "Vertrauenskette" der echten IP-Adresse des Endbenutzers

Verstanden, also geht es mehr darum, was Rails oder andere Gems mit den Headern machen, und weniger darum, was der Discourse-Code tut.

Interessant, dass Rails X-Real-IP nicht nutzt, was wahrscheinlich weniger häufig verwendet wird als X-Forwarded-For, aber sicherlich besser bekannt ist als Forwarded und Client-IP :thinking:.

Wahrscheinlich ist X-Real-IP dann in der Nginx-Konfiguration veraltet. Discourse erweitert die Nutzung zusammen mit X-Forwarded-For in den Logs, wenn ich das richtig interpretiere? Ich konnte keine andere explizite Verwendung/Erwähnung im Code finden:

Das unten sah für mich in zweierlei Hinsicht falsch aus, als ich es beim Debugging der gemeinsamen Rate-Beschränkung sah und Fehlermeldungen wegen der ungültigen „unix:“-Client-IP nach unserem Discourse-Upgrade protokollierte (wir verwenden einen UNIX-Socket-Proxy vor dem Container und verlassen uns auf X-Forwarded-For).

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;

Aber ich verstehe den „es funktioniert“-Aspekt, um $remote_addr zuverlässig als einzigen Wahrheitspunkt zu machen, und real_ip_header als den kanonischen Weg für Admins, die einzelne IP zu steuern, die Discourse/Rails erhält. Ich sehe, dass es bereits zu Serve Discourse from a subfolder (path prefix) instead of a subdomain hinzugefügt wurde :+1:.