Amélioration de la gestion des reverse proxy (X-Forwarded-For)
Proposition de patch : https://github.com/spip/SPIP/pull/13
Ajout d’un nouveau define, _REVERSE_PROXY
, qui permet d’indiquer si l’installation de SPIP se trouve derrière un relai inverse. Dans ce cas, on récupère l’adresse IP du client via l’en-tête HTTP X-Forwarded-For
et on se considère en HTTP ou HTTPS selon l’en-tête X-Forwarded-Proto
.
La fonction url_de_base() est aussi modifiée pour éviter d’intégrer le port serveur du serveur si l’on se trouve derrière un relai inverse.
Au final, les define suivants sont ajoutés :
-
_REVERSE_PROXY
(boolean) : indique si l’on se situe derrière un relai inverse. -
_REVERSE_PROXY_HEADER
: définir le nom de l’en-tête indiquant l’adresse IP du client (habituellement,X-Forwarded-For
). -
_REVERSE_PROXY_PROTO_HEADER
: définir le nom de l’en-ête indiquant le type de protocole utilisé par le client (habituellement,X-Forwarded-Proto
).