Bestimmen der richtigen Hostnamen-Variable für PHP-Skripte
Beim Definieren von Links in Ihren PHP-Skripten ist die Auswahl der geeigneten Variable für den Hostnamen von entscheidender Bedeutung . Früher wurde angenommen, dass $_SERVER['HTTP_HOST'] verwendet werden sollte, da es auf der Anfrage des Clients basiert, während $_SERVER['SERVER_NAME'] auf der Konfigurationsdatei Ihres Servers basiert und variieren kann.
Allerdings gibt es, wie in Chris Shifletts Artikel „SERVER_NAME Versus HTTP_HOST“ erwähnt, keine eindeutige Antwort. Nur indem Sie Apache zwingen, den kanonischen Namen zu verwenden, können Sie mit SERVER_NAME konsistent den richtigen Servernamen abrufen.
In Situationen, in denen dies nicht möglich ist, können Sie die Implementierung eines Whitelist-Ansatzes in Betracht ziehen:
$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; }
Bei dieser Methode wird der Hostname anhand einer vordefinierten Liste zulässiger Werte überprüft. Wenn der Hostname nicht in der Liste vorhanden ist, wird ein Fehler zurückgegeben.
Es ist wichtig zu beachten, dass $_SERVER['HTTP_HOST'] zwar eine flexiblere Wahl zu sein scheint, aber anfällig für Manipulationen sein kann böswillige Akteure. Dies kann die Sicherheit Ihrer Anwendung gefährden.
Daher hängt die beste Entscheidung von Ihren spezifischen Anforderungen und Sicherheitsüberlegungen ab. Wenn Sie einen zuverlässigen und konsistenten Servernamen benötigen, kann es erforderlich sein, die Kanonisierung von Hostnamen in Ihrer Serverkonfiguration zu erzwingen und $_SERVER['SERVER_NAME'] zu verwenden. Alternativ bietet der Whitelist-Ansatz mit $_SERVER['HTTP_HOST'] eine flexiblere, aber möglicherweise weniger sichere Option.
Das obige ist der detaillierte Inhalt von$_SERVER[\'HTTP_HOST\'] vs. $_SERVER[\'SERVER_NAME\']: Welches ist die richtige Hostnamen-Variable für PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!