>백엔드 개발 >PHP 튜토리얼 >PHP에서 $_SERVER[\'HTTP_HOST\']와 $_SERVER[\'SERVER_NAME\']를 언제 사용해야 합니까?

PHP에서 $_SERVER[\'HTTP_HOST\']와 $_SERVER[\'SERVER_NAME\']를 언제 사용해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-16 10:52:03414검색

When Should You Use $_SERVER['HTTP_HOST'] vs. $_SERVER['SERVER_NAME'] in PHP?

$_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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.