$_SERVER['HTTP_HOST'] lwn. $_SERVER['SERVER_NAME'] dalam PHP
Semasa bekerja dengan skrip PHP, ia adalah penting untuk memahami perbezaan antara $_SERVER['HTTP_HOST'] dan $_SERVER['SERVER_NAME'].
Memahami Pembolehubah $_SERVER
$_SERVER['SERVER_NAME'] ditentukan oleh konfigurasi pelayan web anda, dipengaruhi oleh arahan seperti VirtualHost , ServerName dan UseCanonicalName. Sebaliknya, $_SERVER['HTTP_HOST'] diperoleh daripada permintaan pelanggan.
Pembolehubah Yang Mana Untuk Digunakan?
Untuk memaksimumkan keserasian skrip, nampaknya logik untuk memilih untuk $_SERVER['HTTP_HOST']. Walau bagaimanapun, keadaannya sedikit lebih kompleks. Artikel Chris Shiflett, "SERVER_NAME Versus HTTP_HOST," menyerlahkan bahawa tiada penyelesaian yang jelas wujud.
Potensi Kebimbangan Keselamatan
Sementara $_SERVER['HTTP_HOST'] kelihatan tidak berbahaya untuk digunakan dalam pautan dan borang, adalah penting untuk diingat bahawa pembolehubah $_SERVER boleh dimanipulasi oleh penyerang. Untuk mengurangkan risiko ini, adalah bijak untuk menyenarai putih nama hos yang dibenarkan, seperti yang ditunjukkan dalam kod berikut:
$allowed_hosts = array('foo.example.com', 'bar.example.com'); if (!isset($_SERVER['HTTP_HOST']) || !in_array($_SERVER['HTTP_HOST'], $allowed_hosts)) { header($_SERVER['SERVER_PROTOCOL'].' 400 Bad Request'); exit; }
Dengan mematuhi garis panduan ini, pembangun boleh menggunakan pembolehubah $_SERVER dengan yakin dalam skrip PHP mereka sambil mengekalkan keselamatan persekitaran.
Atas ialah kandungan terperinci Bilakah Anda Harus Menggunakan $_SERVER[\'HTTP_HOST\'] lwn. $_SERVER[\'SERVER_NAME\'] dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!