PHP 서버 변수: 'HTTP_HOST' 대 'SERVER_NAME'
$_SERVER 변수는 안전하지 않으므로 $_SERVER['HTTP_HOST'] 사용의 적절성에 의문을 제기하고 $_SERVER['SERVER_NAME']. 상황을 명확히 해보자.
모아보시다시피 $_SERVER['SERVER_NAME']은 웹 서버의 구성에 따라 결정되는 반면, $_SERVER['HTTP_HOST']는 클라이언트의 요청에 따라 결정됩니다. 이러한 구별은 사이트 전체에서 신뢰할 수 있는 링크 정의에 어떤 변수를 사용해야 하는지에 대한 의문을 제기합니다.
호환성을 위해 $_SERVER['HTTP_HOST']를 사용하는 것이 논리적으로 보일 수도 있지만 Chris Shiflett의 기사 "SERVER_NAME 대 HTTP_HOST"에서는 다음과 같이 설명합니다. 더 복잡한 상황. Apache 웹 서버는 표준 이름을 사용하도록 구성하여 SERVER_NAME과 일관된 서버 이름을 보장할 수 있습니다. 그러나 이 구성이 적용되지 않으면 HTTP_HOST에만 의존하는 것만으로는 충분하지 않을 수 있습니다.
링크의 무결성을 보장하려면 다음 옵션을 고려하세요.
$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; }
이러한 옵션을 평가하고 제기된 보안 문제를 고려하면 어떤 접근 방식이 PHP 스크립트에 가장 적합한지 현명한 결정을 내릴 수 있습니다.
위 내용은 $_SERVER[\'HTTP_HOST\'] 대 $_SERVER[\'SERVER_NAME\']: 보안 링크에 무엇을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!