X-Forwarded-For X-Forwarded-For adalah header ekstensi. Protokol HTTP/1.1 (RFC 2616) tidak mendefinisikannya, awalnya diperkenalkan oleh Squid, perangkat lunak proxy caching, untuk mewakili IP asli dari pemohon HTTP, dan sekarang telah menjadi standar de facto, banyak digunakan oleh proxy HTTP utama, penyeimbangan beban, dan layanan penerusan lainnya, dan ditulis ke dalam standar RFC 7239 (Forwarded HTTP Extension).
Dalam struktur jaringan dengan beberapa lapisan proxy (misalnya, alamat IP CDN dan Anti-DDoS Pro yang terhubung ke firewall aplikasi web), alamat IP semua proxy ditambahkan ke bidang x-forwarded-for. Ini karena server proxy menulis alamat IP proxy untuk setiap penerusan.
Formatnya adalah sebagai berikut:
X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip Forge X-Forwarded-For
Kami menambahkan header permintaan X-Forwarded-For melalui tukang pos, yang memalsukan sesuatu seperti ini:
Saya menggunakan layanan SLB Alibaba Cloud, SLB -> IIS, jika kita mendapatkan alamat IP pertama, pasti salah, alamat IP terakhir adalah alamat IP asli klien.
(Dalam kehidupan nyata, Anda perlu mendapatkannya sesuai dengan arsitektur Anda sendiri, dan mendapatkan alamat IP asli klien tergantung pada berapa banyak lapisan proxy yang telah Anda lalui.Anda percaya pada lapisan pertama)
Untuk menggunakan nginx sebagai proxy terbalik, Anda dapat mengaturnya sebagai berikut:
Server proxy terluar tidak mempercayai input X-Forwarded-For dari klien, secara langsung menimpanya, daripada menambahkannya.
|