>  기사  >  백엔드 개발  >  티켓을 브러싱하여 클라이언트 IP를 얻는 방법 알아보기

티켓을 브러싱하여 클라이언트 IP를 얻는 방법 알아보기

WBOY
WBOY원래의
2016-07-29 09:15:041163검색

내 개인 블로그, 출처 주소: http://www.woniubi.cn/get_client_ip/

처음 2주 동안 누군가를 도와주세요 친구와 친척의 자녀가 티켓을 긁는다. 누가 우리를 프로그래머로 만드는가? 이 과정에서 시스템 재설치, 먼지 제거, 타오바오 쇼핑, QQ 훔치기, 영화 다운로드, 특정 소프트웨어를 사용할 수 없는 이유 등과 같은 문제도 겪었습니다. 아주 좋습니다. 문제가 해결될 수 없습니다.

브러싱 티켓은 다양한 제한, 등록된 사용자, 인증코드, IP 제한으로 나누어집니다. 본 투표사이트가 아닌 본 투표브러싱 사이트에는 IP 제한이 있습니다. 한계를 깨고 싶다면 사용자의 IP를 얻는 방법을 이해해야 합니다.

1:getenv('HTTP_X_FORWARDED_FOR')
2:getenv('HTTP_CLIENT_IP')
3:getenv('REMOTE_ADDR')

HTTP_X_FORWARDED_FOR

http 헤더에서 가져오며 형식은 A ip, B ip입니다. , Cip. 여기에는 두 가지 이유가 있습니다.

  1. 웹사이트에서는 트래픽이 너무 커서 로드 밸런싱을 사용하므로 애플리케이션 앞에 로드 밸런싱을 배치합니다. 사용자는 서버에 직접 접근할 수 없습니다.
  2. 사용자는 프록시를 사용하여 액세스합니다.

사용자는 먼저 A IP를 사용합니다. 프록시 계층이 추가될 때마다 이 헤더는 끝에 쉼표로 구분된 IP를 하나 더 추가하고 최종적으로 실제 웹 컨테이너. 헤더에서 얻은 정보라면 위조가 가능합니다. 따라서 이 경우에 사용된 A IP는 사용자의 실제 IP가 아닐 수도 있습니다. 따라서 우리의 경우에는 로드밸런서에 연결된 IP만 사용자의 실제 IP로 간주할 수 있습니다. 하지만 이 IP는 사용자의 실제 IP가 아닌 사용자의 프록시 IP일 수 있습니다. 하지만 이 상황은 적어도 사용자의 가짜 IP보다 낫습니다.

HTTP_CLIENT_IP

이것도 헤더에서 얻어오는데, 원래는 사용자의 실제 IP를 기록하기 위한 것이지만 거의 사용되지 않습니다. 사용된.

REMOTE_ADDR

연결을 얻기 위한 IP입니다. 소규모 웹사이트에서만 이 방법을 사용하며, 사이트는 로드 밸런싱 없이 단일 지점입니다. 상위 레이어에서 pxory를 사용하는 경우 이 데이터는 프록시의 IP입니다.

제가 한 일은 x-forwarder-for 데이터를 직접 위조하여 속이는 것이었습니다. 그런데 며칠 만에 이 취약점이 발견되었습니다. 대신 프록시를 사용하여 직접 스와이프하세요.

위 내용을 포함하여 스와핑 티켓에서 클라이언트 IP를 얻는 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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