$_SERVER['HTTP_HOST'] vs. $_SERVER['SERVER_NAME'] in PHP
Bei der Arbeit mit PHP-Skripten ist es von entscheidender Bedeutung um die Unterschiede zwischen $_SERVER['HTTP_HOST'] und $_SERVER['SERVER_NAME'] zu verstehen.
$_SERVER-Variablen verstehen
$_SERVER['SERVER_NAME'] wird durch die Konfiguration Ihres Webservers bestimmt und durch Anweisungen wie VirtualHost, ServerName und UseCanonicalName beeinflusst. Im Gegensatz dazu wird $_SERVER['HTTP_HOST'] aus der Anfrage des Clients abgeleitet.
Welche Variable soll verwendet werden?
Um die Skriptkompatibilität zu maximieren, erscheint es logisch, sich dafür zu entscheiden für $_SERVER['HTTP_HOST']. Allerdings ist die Situation etwas komplexer. Chris Shifletts Artikel „SERVER_NAME Versus HTTP_HOST“ hebt hervor, dass es keine klare Lösung gibt.
Potenzielle Sicherheitsbedenken
Während $_SERVER['HTTP_HOST'] für die Verwendung harmlos erscheint In Links und Formularen ist es wichtig zu bedenken, dass $_SERVER-Variablen von Angreifern manipuliert werden können. Um dieses Risiko zu mindern, ist es ratsam, zulässige Hostnamen auf die Whitelist zu setzen, wie im folgenden Code gezeigt:
$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; }
Durch die Einhaltung dieser Richtlinien können Entwickler sicher $_SERVER-Variablen in ihren PHP-Skripten verwenden und gleichzeitig die Sicherheit gewährleisten Umgebung.
Das obige ist der detaillierte Inhalt vonWann sollten Sie $_SERVER[\'HTTP_HOST\'] vs. $_SERVER[\'SERVER_NAME\'] in PHP verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!