내 개인 블로그, 출처 주소: 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. 여기에는 두 가지 이유가 있습니다.
- 웹사이트에서는 트래픽이 너무 커서 로드 밸런싱을 사용하므로 애플리케이션 앞에 로드 밸런싱을 배치합니다. 사용자는 서버에 직접 접근할 수 없습니다.
- 사용자는 프록시를 사용하여 액세스합니다.
사용자는 먼저 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 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.