$_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 주소를 확인하는 안정적인 접근 방식입니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3