Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bilakah Anda Harus Menggunakan $_SERVER[\'HTTP_HOST\'] lwn. $_SERVER[\'SERVER_NAME\'] dalam PHP?

Bilakah Anda Harus Menggunakan $_SERVER[\'HTTP_HOST\'] lwn. $_SERVER[\'SERVER_NAME\'] dalam PHP?

Barbara Streisand
Barbara Streisandasal
2024-11-16 10:52:03335semak imbas

When Should You Use $_SERVER['HTTP_HOST'] vs. $_SERVER['SERVER_NAME'] in PHP?

$_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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn