>백엔드 개발 >PHP 튜토리얼 >$_SERVER['REMOTE_ADDR']을 정말로 신뢰할 수 있습니까?

$_SERVER['REMOTE_ADDR']을 정말로 신뢰할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-13 03:06:02941검색

Can You Really Trust $_SERVER['REMOTE_ADDR']?

$_SERVER['REMOTE_ADDR']

$_SERVER['REMOTE_ADDR']의 신뢰성은 웹 개발에 있어서 중요한 변수입니다. HTTP 요청을 시작하는 클라이언트의 IP 주소를 제공합니다. 그러나 이 값은 쉽게 스푸핑될 수 있다는 일반적인 오해가 있어 신뢰성에 대한 우려가 있습니다.

$_SERVER['REMOTE_ADDR']를 신뢰할 수 있습니까?

예, 일반적으로 $_SERVER['REMOTE_ADDR'] 값을 신뢰하는 것이 안전합니다. 이는 클라이언트 TCP 연결의 IP 주소를 나타내며 HTTP 헤더를 변경하여 수정할 수 없습니다. 이는 IP 주소가 TCP/IP 연결의 속성이고 HTTP 헤더의 일부로 전송되지 않기 때문입니다.

잠재적인 함정

그러나 이 규칙의 한 가지 중요한 예외입니다. 서버가 역방향 프록시 뒤에 있는 경우 REMOTE_ADDR은 클라이언트가 아닌 프록시 서버의 IP 주소를 나타냅니다. 이 경우 클라이언트의 IP 주소는 일반적으로 X-Forwarded-For인 HTTP 헤더에 포함됩니다.

예를 들어, 서버가 IP 주소 111.111.111.111을 사용하는 역방향 프록시 뒤에 있는 경우 다음을 요청합니다. 귀하의 서버는 해당 IP 주소에서 시작된 것으로 나타납니다. 이 시나리오에서 클라이언트의 IP 주소를 얻으려면 X-Forwarded-For 헤더를 검사해야 합니다.

그러나 역방향 프록시 없이 클라이언트로부터 HTTP 요청을 직접 수신하는 가장 일반적인 시나리오에서는 신뢰 $_SERVER['REMOTE_ADDR']은 클라이언트의 IP 주소를 확인하는 안정적인 접근 방식입니다.

위 내용은 $_SERVER['REMOTE_ADDR']을 정말로 신뢰할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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