Kebolehpercayaan $_SERVER['REMOTE_ADDR']
$_SERVER['REMOTE_ADDR'] ialah pembolehubah penting dalam pembangunan web, menyediakan alamat IP klien yang memulakan permintaan HTTP. Walau bagaimanapun, terdapat salah tanggapan umum bahawa nilai ini boleh ditipu dengan mudah, yang membawa kepada kebimbangan tentang kebolehpercayaannya.
Bolehkah $_SERVER['REMOTE_ADDR'] Dipercayai?
Ya, secara amnya selamat untuk mempercayai nilai $_SERVER['REMOTE_ADDR']. Ia mewakili alamat IP sambungan TCP pelanggan dan tidak boleh diubah suai dengan mengubah pengepala HTTP. Ini kerana alamat IP adalah sifat sambungan TCP/IP dan tidak dihantar sebagai sebahagian daripada pengepala HTTP.
Potensi Perangkap
Walau bagaimanapun, terdapat satu pengecualian penting kepada peraturan ini. Jika pelayan anda berada di belakang proksi terbalik, REMOTE_ADDR akan mewakili alamat IP pelayan proksi, bukan klien. Dalam kes ini, alamat IP pelanggan akan disertakan dalam pengepala HTTP, biasanya X-Forwarded-For.
Contohnya, jika pelayan anda berada di belakang proksi terbalik dengan alamat IP 111.111.111.111, minta untuk pelayan anda akan kelihatan berasal dari alamat IP tersebut. Untuk mendapatkan alamat IP pelanggan dalam senario ini, anda perlu memeriksa pengepala X-Forwarded-For.
Walau bagaimanapun, dalam kebanyakan senario biasa di mana anda menerima terus permintaan HTTP daripada pelanggan tanpa proksi terbalik, mempercayai $_SERVER['REMOTE_ADDR'] ialah pendekatan yang boleh dipercayai untuk menentukan alamat IP pelanggan.
Atas ialah kandungan terperinci Bolehkah Anda Benar-benar Mempercayai $_SERVER['REMOTE_ADDR']?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!