X-Forwarded-For X-Forwarded-For is een extensieheader. Het HTTP/1.1 (RFC 2616) protocol definieert het niet; het werd oorspronkelijk geïntroduceerd door Squid, een caching-proxysoftware, om het echte IP van de HTTP-aanvrager weer te geven, en is nu een de facto standaard geworden, veel gebruikt door grote HTTP-proxies, load balancing en andere forwardingservices, en geschreven in de RFC 7239 (Forwarded HTTP Extension) standaard.
In een netwerkstructuur met meerdere lagen proxies (bijvoorbeeld een CDN- en Anti-DDoS Pro IP-adres verbonden met een webapplicatiefirewall), worden de IP-adressen van alle proxies toegevoegd aan het x-forwarded-for-veld. Dit komt doordat de proxyserver het proxy-IP-adres voor elke doorstuur schrijft.
Het format is als volgt:
X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip Forge X-Forwarded-For
We voegen de X-Forwarded-For-verzoekheader toe via postman, die iets als het volgende vervalst:
Ik gebruikte de SLB-service van Alibaba Cloud, SLB -> IIS; als we het eerste IP-adres krijgen, moet het onjuist zijn, het laatste IP-adres is het echte IP-adres van de client.
(In het echte leven moet je het verkrijgen volgens je eigen architectuur, en het verkrijgen van het echte IP-adres van de client hangt af van hoeveel lagen proxies je hebt doorlopen.Je gelooft in de eerste laag)
Voor het gebruik van nginx als reverse proxy kun je het als volgt instellen:
De buitenste proxyserver vertrouwt de X-Forwarded-For-invoer van de client niet, en overschrijft deze direct in plaats van toe te voegen.
|