X-Forwarded-For X-Forwarded-For est un en-tête d’extension. Le protocole HTTP/1.1 (RFC 2616) ne le définit pas, il a été initialement introduit par Squid, un logiciel proxy de mise en cache, pour représenter la véritable IP du demandeur HTTP, et est désormais devenu une norme de facto, largement utilisée par les principaux proxys HTTP, l’équilibrage de charge et d’autres services de retransmission, et intégrée à la norme RFC 7239 (Forwarded HTTP Extension).
Dans une structure réseau avec plusieurs couches de proxies (par exemple, un CDN et une adresse IP Anti-DDoS Pro connectées à un pare-feu d’application web), les adresses IP de tous les proxies sont ajoutées au champ x-forwarded-for. Cela s’explique par le fait que le serveur proxy écrit l’adresse IP du proxy pour chaque retransmission.
Le format est le suivant :
X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip Forge X-Forwarded-For
Nous ajoutons l’en-tête de requête X-Forwarded-For via postman, ce qui crée quelque chose comme ceci :
J’ai utilisé le service SLB d’Alibaba Cloud, SLB -> IIS, si nous obtenons la première adresse IP, elle doit être incorrecte, la dernière adresse IP est la vraie adresse IP du client.
(Dans la vie réelle, il faut l’obtenir selon sa propre architecture, et obtenir l’adresse IP réelle du client dépend du nombre de couches de proxies que vous avez traversées.Tu crois en la première couche)
Pour utiliser nginx comme proxy inverse, vous pouvez configurer cela comme suit :
Le serveur proxy le plus externe ne fait pas confiance à l’entrée X-Forwarded-For du client, la remplaçant directement au lieu de l’ajouter.
|