Memahami PHP $_SERVER['HTTP_HOST'] dan $_SERVER['SERVER_NAME']
Menentukan pembolehubah pelayan yang betul untuk digunakan untuk tapak web definisi pautan menimbulkan kebimbangan. Dokumentasi PHP dan carian dalam talian yang meluas membawa kepada cerapan berikut:
**$_SERVER['HTTP_HOST'] lwn. **_$SERVER['SERVER_NAME']
$_SERVER['SERVER_NAME'] bergantung pada konfigurasi pelayan web (biasanya Apache2) dan dipengaruhi oleh arahan seperti VirtualHost, ServerName dan UseCanonicalName.
Sebaliknya, $_SERVER['HTTP_HOST'] ialah permintaan klien yang diperolehi.
Memilih Pembolehubah yang Sesuai
Berdasarkan ini perbezaan, $_SERVER['HTTP_HOST'] nampaknya lebih sesuai untuknya memastikan keserasian merentasi pelbagai persekitaran. Walau bagaimanapun, kebimbangan timbul daripada artikel yang mencadangkan ketidakbolehpercayaan pembolehubah $_SERVER dalam konteks keselamatan.
Pertimbangan Keselamatan
Dokumentasi PHP dan rujukan seperti artikel Mark Jaquith menyerlahkan potensi untuk serangan XSS apabila menggunakan $_SERVER['PHP_SELF'] dalam tindakan bentuk tanpa sanitasi yang betul. Walau bagaimanapun, isu ini tidak terpakai secara langsung kepada $_SERVER['HTTP_HOST'].
Kesimpulan
Sementara $_SERVER['HTTP_HOST'] menangani kebimbangan keserasian, adalah penting untuk berhati-hati dengan melaksanakan langkah keselamatan sedemikian sebagai:
Dengan mengambil ini langkah-langkah, anda boleh memastikan penggunaan pembolehubah PHP $_SERVER yang selamat dan boleh dipercayai dalam pautan tapak web anda takrifan.
Atas ialah kandungan terperinci Pembolehubah PHP $_SERVER manakah yang terbaik untuk definisi pautan tapak web: HTTP_HOST atau SERVER_NAME?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!