Implikasi Keselamatan daripada Mempercayai $_SERVER['REMOTE_ADDR']
Dalam pembangunan web, $_SERVER['REMOTE_ADDR'] menyimpan IP sumber alamat pelanggan yang memulakan permintaan. Anda mungkin tertanya-tanya sama ada bergantung pada nilai ini selamat dan jika ia terdedah kepada manipulasi.
Kebolehpercayaan $_SERVER['REMOTE_ADDR']
Ya, secara amnya selamat untuk percayakan $_SERVER['REMOTE_ADDR']. Ia mewakili IP sumber sambungan TCP yang diwujudkan antara klien dan pelayan. Mengubah suai nilai ini dengan memanipulasi pengepala HTTP tidak mungkin.
Pertimbangan Keselamatan Potensi
Walau bagaimanapun, berhati-hati jika anda berada di belakang proksi terbalik. Dalam senario sedemikian, REMOTE_ADDR sentiasa mencerminkan IP pelayan proksi dan IP pelanggan disediakan dalam pengepala HTTP seperti X-Forwarded-For.
Contoh:
Pertimbangkan coretan kod berikut:
if ($_SERVER['REMOTE_ADDR'] == '222.222.222.222') { // my ip address $grant_all_admin_rights = true; }
Dalam contoh ini, mempercayai REMOTE_ADDR adalah selamat kerana ia adalah IP sumber sambungan. Menukar pengepala tidak akan mengubah nilai ini, menjadikannya penunjuk yang boleh dipercayai tentang asal pelanggan.
Atas ialah kandungan terperinci Adakah $_SERVER['REMOTE_ADDR'] Selamat dan Boleh Dipercayai dalam Pembangunan Web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!