>  기사  >  백엔드 개발  >  PHP 구현은 클라이언트가 프록시 서버를 사용하는지 여부와 익명성을 감지합니다.

PHP 구현은 클라이언트가 프록시 서버를 사용하는지 여부와 익명성을 감지합니다.

WBOY
WBOY원래의
2016-05-16 20:26:081180검색

클라이언트가 프록시 서버를 사용하는지 여부는 클라이언트가 보낸 환경 변수 정보를 통해 판단할 수 있습니다.

구체적으로 HTTP_VIA 필드를 살펴보세요. 이 필드가 설정되어 있으면 클라이언트가 프록시 서버를 사용한다는 의미입니다.

익명성 정도는 아래 표를 참고하여 판단하시면 됩니다.

적용 예를 들어보세요. 프록시를 걸어 효과를 시험해 볼 수 있습니다. http://ip.mixsec.org/

1. 프록시 서버를 사용하지 않는 상황:

REMOTE_ADDR = 귀하의 IP
HTTP_VIA = 값이 없거나 표시되지 않음
HTTP_X_FORWARDED_FOR = 값이 없거나 표시되지 않음

2. 투명 프록시 서버의 사용: 투명 프록시

REMOTE_ADDR = 프록시 서버 IP
HTTP_VIA = 프록시 서버 IP(보충: 이 필드는 프록시 서버에 의해 채워지며 때로는 게이트웨이 정보 등이 채워집니다.)
HTTP_X_FORWARDED_FOR = 실제 IP
이러한 유형의 프록시 서버는 귀하가 방문하는 사람에게 귀하의 정보를 계속 전달하며 귀하의 실제 신원을 숨기는 목적을 달성할 수 없습니다.

3. 일반 익명 프록시 서버 사용: 익명 프록시

REMOTE_ADDR = 프록시 서버 IP
HTTP_VIA = 프록시 서버 IP(보충: 이 필드는 프록시 서버에 의해 채워지며 때로는 게이트웨이 정보 등이 채워집니다.)
HTTP_X_FORWARDED_FOR = 프록시 서버 IP
실제 IP를 숨기되 프록시 서버를 사용하여 액세스하고 있다는 사실을 대상에게 공개하십시오.

4. 거짓 프록시 서버 사용: 프록시 왜곡

REMOTE_ADDR = 프록시 서버 IP
HTTP_VIA = 프록시 서버 IP(보충: 이 필드는 프록시 서버에 의해 채워지며 때로는 게이트웨이 정보 등이 채워집니다.)
HTTP_X_FORWARDED_FOR = 임의 IP
방문자에게 프록시 서버를 사용하고 있다고 말하되 실제 IP 대신 가짜 임의 IP를 만들어 속이세요.

5. 익명성이 높은 프록시 서버 사용: 익명성이 높은 프록시

REMOTE_ADDR = 프록시 서버 IP
HTTP_VIA = 값이 없거나 표시되지 않음
HTTP_X_FORWARDED_FOR = 값이 없거나 표시되지 않음
프록시 서버를 사용하여 개체에 직접 액세스하는 것처럼 모든 정보를 프록시 서버의 정보로 완전히 바꿉니다.

또한 대리심사를 통해 기타 참고판정 정보를 요약하여 실무에 활용할 수 있습니다.

마지막으로 참고용으로만 PHP 예제를 작성하세요.

코드 복사 코드는 다음과 같습니다.

if(!empty($_SERVER['HTTP_VIA'])) //프록시가 사용됩니다
{
If(!isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
                  //익명 프록시                                                                               //프록시 IP 주소는 $_SERVER['REMOTE_ADDR']
입니다. }
그 외
{
//투명 프록시 투명 프록시 서버
//프록시 IP 주소는 $_SERVER['REMOTE_ADDR']
입니다. //실제 IP 주소는 $_SERVER['HTTP_X_FORWARDED_FOR']
}
}
else //프록시 또는 익명성이 높은 프록시 없음
{
//실제 IP 주소는 $_SERVER['REMOTE_ADDR']
}

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