$_SERVER['HTTP_HOST'] 대 $_SERVER['SERVER_NAME'](PHP의 경우)
PHP 스크립트로 작업하는 동안 이는 매우 중요합니다. $_SERVER['HTTP_HOST'] 와 차이점을 이해하려면 $_SERVER['SERVER_NAME'].
$_SERVER 변수 이해
$_SERVER['SERVER_NAME']는 VirtualHost와 같은 지시문의 영향을 받는 웹 서버 구성에 따라 결정됩니다. , ServerName 및 UseCanonicalName입니다. 반면 $_SERVER['HTTP_HOST']는 클라이언트의 요청에서 파생됩니다.
어떤 변수를 사용할 것인가?
스크립트 호환성을 최대화하려면 선택하는 것이 논리적인 것 같습니다. $_SERVER['HTTP_HOST']의 경우. 그러나 상황은 약간 더 복잡합니다. Chris Shiflett의 기사 "SERVER_NAME과 HTTP_HOST"에서는 명확한 해결책이 없음을 강조합니다.
잠재적 보안 문제
$_SERVER['HTTP_HOST']는 사용하기에 무해해 보이지만 링크와 양식에서 $_SERVER 변수는 공격자가 조작할 수 있다는 점을 기억하는 것이 중요합니다. 이러한 위험을 완화하려면 다음 코드에 설명된 대로 허용된 호스트 이름을 화이트리스트에 추가하는 것이 좋습니다.
$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 변수를 자신있게 사용할 수 있습니다. 환경.
위 내용은 PHP에서 $_SERVER[\'HTTP_HOST\']와 $_SERVER[\'SERVER_NAME\']를 언제 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!