Per gli utenti CloudFlare: come utilizzare i campi CF-* dall'header HTTP invece dell'IP normale?

Poiché CloudFlare oscura l’indirizzo IP del visitatore, sarebbe utile poter catturare campi specifici di CloudFlare, come CF-Connecting-IP, X-Forwarded-For e CF-IPCountry, dall’intestazione HTTP che inserisce, per poi riportarli condizionalmente nella pagina Admin > Utenti > nomeutente, in aggiunta ai campi IP (non utili con CF) e al pulsante di ricerca IP.

Potremmo avere questi campi disponibili in questa pagina quando sono presenti le intestazioni CF-*?

Un’opzione utile (che ho utilizzato in altre applicazioni Rails) sarebbe quella di utilizzare semplicemente questi campi al posto dell’indirizzo IP se sono disponibili. È passato del tempo da quando l’ho implementato, ma se ricordo correttamente, penso che avremmo solo impostato l’IP del visitatore sull’IP a meno che CF-Connecting-IP non esista… ma pensavo ci fosse qualcos’altro che avevo fatto con X-Forwarded-For

Se utilizzi il template Cloudflare fornito, tutto viene gestito automaticamente. Questa funzionalità è in realtà disponibile in Discourse da quattro o cinque anni.

Supponendo che tu abbia seguito l’installazione standard:

cd /var/discourse
nano containers/app.yml

aggiungi questa riga sotto templates:

- "templates/cloudflare.template.yml"

Quindi ricostruisci semplicemente:

./launcher rebuild app

A quel punto la tua installazione mostrerà gli indirizzi email reali degli utenti.

È fantastico, Stephen, grazie! Una cosa così semplice che probabilmente dovrebbe essere inclusa e commentata di default o documentata da qualche parte. Almeno ora si può trovare cercando “CloudFlare” qui in relazione a questo. Non mi era mai venuto in mente di guardare nella cartella templates! :slight_smile: