Rumah > pembangunan bahagian belakang > tutorial php > 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
Lepaskan: 2024-11-16 10:52:03
asal
455 orang telah melayarinya

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;
}
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan