Variables du serveur PHP : 'HTTP_HOST' vs. 'SERVER_NAME'
Vous avez rencontré des informations suggérant que l'utilisation de l'un des $_SERVER variables n'est pas sûr, ce qui vous amène à vous interroger sur l'opportunité d'utiliser $_SERVER['HTTP_HOST'] et $_SERVEUR['SERVEUR_NOM']. Clarifions la situation.
Comme vous l'avez compris, $_SERVER['SERVER_NAME'] est déterminé par la configuration du serveur Web, tandis que $_SERVER['HTTP_HOST'] est basé sur la demande du client. Cette distinction soulève la question de savoir quelle variable utiliser pour des définitions de liens fiables à l'échelle du site.
Bien qu'il puisse sembler logique d'utiliser $_SERVER['HTTP_HOST'] pour la compatibilité, l'article de Chris Shiflett "SERVER_NAME Versus HTTP_HOST" révèle une situation plus complexe. Les serveurs Web Apache peuvent être configurés pour utiliser des noms canoniques, garantissant ainsi des noms de serveur cohérents avec SERVER_NAME. Cependant, si cette configuration n'est pas appliquée, s'appuyer uniquement sur HTTP_HOST peut ne pas suffire.
Pour garantir l'intégrité de vos liens, envisagez ces options :
$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; }
En évaluant ces options et en tenant compte des problèmes de sécurité soulevés, vous pouvez prendre une décision éclairée quant à l'approche la plus appropriée pour vos scripts PHP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!