Pour les utilisateurs de CloudFlare : comment utiliser les champs CF-* de l'en-tête HTTP au lieu de l'IP normale ?

Puisque CloudFlare masque l’adresse IP du visiteur, il serait utile de pouvoir capturer des champs supplémentaires spécifiques à CloudFlare tels que CF-Connecting-IP, X-Forwarded-For et CF-IPCountry à partir de l’en-tête HTTP qu’ils insèrent, puis de les rapporter conditionnellement dans la page Admin > Utilisateurs > nom_d'utilisateur, en plus des champs IP (peu utiles avec CF) et du bouton de recherche IP.

Pourrions-nous avoir ces champs fournis sur cette page lorsque les en-têtes CF-* sont disponibles ?

Une option qui serait utile (et que j’ai utilisée dans d’autres applications Rails) consiste à simplement utiliser ces champs à la place de l’adresse IP s’ils sont disponibles. Cela fait un moment que je l’ai mis en œuvre, mais si ma mémoire est bonne, je pense que nous aurions simplement défini l’adresse IP du visiteur sur l’adresse IP sauf si CF-Connecting-IP existe… mais je croyais avoir fait autre chose avec X-Forwarded-For

Si vous utilisez le modèle Cloudflare fourni, tout est géré automatiquement. Cette fonctionnalité est en réalité disponible dans Discourse depuis quatre ou cinq ans.

En supposant que vous ayez suivi l’installation standard :

cd /var/discourse
nano containers/app.yml

ajoutez cette ligne sous templates :

- "templates/cloudflare.template.yml"

Ensuite, reconstruisez simplement :

./launcher rebuild app

À ce stade, votre installation affichera les vraies adresses des utilisateurs.

C’est fantastique, Stephen, merci ! Une chose si simple qu’elle devrait probablement y être et commentée par défaut, ou bien documentée quelque part. Du moins, on peut maintenant la trouver via des recherches « CloudFlare » ici en rapport avec cela. Je n’aurais jamais pensé à regarder dans le dossier templates ! :slight_smile: