> 백엔드 개발 > PHP 튜토리얼 > $_SERVER[\'HTTP_HOST\'] 대 $_SERVER[\'SERVER_NAME\']: PHP에 적합한 호스트 이름 변수는 무엇입니까?

$_SERVER[\'HTTP_HOST\'] 대 $_SERVER[\'SERVER_NAME\']: PHP에 적합한 호스트 이름 변수는 무엇입니까?

DDD
풀어 주다: 2024-12-04 06:13:16
원래의
384명이 탐색했습니다.

$_SERVER['HTTP_HOST'] vs. $_SERVER['SERVER_NAME']: Which is the Right Hostname Variable for PHP?

PHP 스크립트에 대한 올바른 호스트 이름 변수 결정

PHP 스크립트에서 링크를 정의할 때 호스트 이름에 적합한 변수를 선택하는 것이 중요합니다. . 역사적으로 $_SERVER['HTTP_HOST']는 클라이언트의 요청을 기반으로 하기 때문에 사용해야 하는 반면, $_SERVER['SERVER_NAME']은 서버의 구성 파일을 기반으로 하며 달라질 수 있다고 믿어졌습니다.

그러나 Chris Shiflett의 기사 "SERVER_NAME과 HTTP_HOST 비교"에 언급된 것처럼 명확한 답은 없습니다. Apache가 표준 이름을 사용하도록 강제해야만 SERVER_NAME을 사용하여 올바른 서버 이름을 일관되게 검색할 수 있습니다.

이것이 불가능한 상황에서는 화이트리스트 접근 방식 구현을 고려할 수 있습니다.

$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;
}
로그인 후 복사

이 방법에는 미리 정의된 허용 값 목록과 비교하여 호스트 이름을 확인하는 작업이 포함됩니다. 호스트 이름이 목록에 없으면 오류가 반환됩니다.

$_SERVER['HTTP_HOST']가 더 유연한 선택처럼 보일 수 있지만 다음과 같은 조작에 취약할 수 있다는 점에 유의하는 것이 중요합니다. 악의적인 배우. 이로 인해 애플리케이션의 보안이 손상될 수 있습니다.

따라서 최선의 결정은 특정 요구 사항과 보안 고려 사항에 따라 달라집니다. 안정적이고 일관된 서버 이름이 필요한 경우 서버 구성에서 호스트 이름의 정규화를 시행하고 $_SERVER['SERVER_NAME']를 사용해야 할 수 있습니다. 또는 $_SERVER['HTTP_HOST']를 사용한 화이트리스트 접근 방식은 더 유연하지만 잠재적으로 덜 안전한 옵션을 제공합니다.

위 내용은 $_SERVER[\'HTTP_HOST\'] 대 $_SERVER[\'SERVER_NAME\']: PHP에 적합한 호스트 이름 변수는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿