Für CloudFlare-Nutzer: Wie nutzt man CF-*-Felder aus dem HTTP-Header anstelle der normalen IP?

Da CloudFlare die IP-Adresse des Besuchers verschleiert, wäre es nützlich, zusätzliche CloudFlare-spezifische Felder wie CF-Connecting-IP, X-Forwarded-For und CF-IPCountry aus dem von CloudFlare eingefügten HTTP-Header zu erfassen und diese dann bedingt auf der Seite Admin > Benutzer > Benutzername zusätzlich zu den (für CF nicht nützlichen) IP-Feldern und der IP-Abfrage-Schaltfläche anzuzeigen.

Könnten wir diese Felder auf dieser Seite bereitgestellt bekommen, wenn CloudFlare-Header-Felder verfügbar sind?

Eine nützliche Option (die ich bereits in anderen Rails-Anwendungen verwendet habe) wäre, diese Felder anstelle der IP-Adresse zu verwenden, falls sie verfügbar sind. Es ist eine Weile her, seit ich das implementiert habe, aber wenn ich mich richtig erinnere, würde man die IP-Adresse des Besuchers standardmäßig auf die IP setzen, es sei denn, CF-Connecting-IP existiert… Allerdings glaube ich, dass ich noch etwas mit X-Forwarded-For gemacht habe…

Wenn Sie die bereitgestellte Cloudflare-Vorlage verwenden, wird dies automatisch erledigt. Dies ist in Discourse bereits seit vier oder fünf Jahren verfügbar.

Unter der Annahme, dass Sie die Standardinstallation befolgt haben:

cd /var/discourse
nano containers/app.yml

fügen Sie dann diese Zeile unter templates hinzu:

- "templates/cloudflare.template.yml"

Anschließend einfach neu aufbauen:

./launcher rebuild app

Ab diesem Zeitpunkt werden bei Ihrer Installation die echten Benutzeradressen angezeigt.

Das ist fantastisch, Stephen, danke! So eine einfache Sache, die wahrscheinlich standardmäßig dort enthalten und auskommentiert oder irgendwo dokumentiert sein sollte. Zumindest kann man es jetzt hier über “CloudFlare”-Suchen im Zusammenhang damit finden. Mir wäre nie eingefallen, im Ordner templates nachzuschauen! :slight_smile: