백엔드 개발 PHP 튜토리얼 获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)_PHP

获取用户Ip地址通用方法与常见安全隐患(HTTP_X_FORWARDED_FOR)_PHP

Jun 01, 2016 pm 12:07 PM
IP 주소

分析过程
这个来自一些项目中,获取用户Ip,进行用户操作行为的记录,是常见并且经常使用的。 一般朋友,都会看到如下通用获取IP地址方法。

复制代码 代码如下:
function getIP() {
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$realip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$realip = $_SERVER['HTTP_CLIENT_IP'];
} else {
$realip = $_SERVER['REMOTE_ADDR'];
}
return $realip;
}


这个是网上常见获取,ip函数,用这些值获取IP,我们首先要弄清楚,这些数据是从那个地方传过来的。

IP获取来源

1.'REMOTE_ADDR' 是远端IP,默认来自tcp 连接是,客户端的Ip。可以说,它最准确,确定是,只会得到直接连服务器客户端IP。如果对方通过代理服务器上网,就发现。获取到的是代理服务器IP了。

如:a->b(proxy)->c ,如果c 通过'REMOTE_ADDR' ,只能获取到b的IP,获取不到a的IP了。

另外:该IP想篡改将很难实现,在传递知道生成php server值,都是直接生成的。

2.'HTTP_X_FORWARDED_FOR','HTTP_CLIENT_IP' 为了能在大型网络中,获取到最原始用户IP,或者代理IP地址。对HTTp协议进行扩展。定义了实体头。

HTTP_X_FORWARDED_FOR = clientip,proxy1,proxy2 所有IP用”,”分割。 HTTP_CLIENT_IP 在高级匿名代理中,这个代表了代理服务器IP。既然是http协议扩展一个实体头,并且这个值对于传入端是信任的,信任传入方按照规则格式输入的。以下以x_forword_for例子加以说明,正常情况下,这个值变化过程。

image


分析Bug风险点:

通过刚刚分析我们发现,其实这些变量,来自http请求的:x-forword-for字段,以及client-ip字段。 正常代理服务器,当然会按rfc规范来传入这些值。但是,当一个用户直接构造该x-forword-for值,发送给用户用户,那将会怎么样呢?

image图(1)

第2步,修改x-forword-fox值,我们看看结果

image

 

第三步,我们再修改下看看会怎么样?

image

 

哈哈,看到上面结果没,x-forwarded-for不光可以自己设置值,而且可以设置任意格式值。 这样一来,好比就直接有一个可以写入任意值的字段。并且服务器直接读取,或者写入数据库,或者做显示。它将带来危险性,跟一般对入输入没有做任何过滤检测,之间操作数据源结果一样。 并且容易带来隐蔽性。

结论:

上面getip函数,除了客户端可以任意伪造IP,并且可以传入任意格式IP。 这样结果会带来2大问题,其一,如果你设置某个页面,做IP限制。 对方可以容易修改IP不断请求该页面。 其二,这类数据你如果直接使用,将带来SQL注册,跨站攻击等漏洞。至于其一,可以在业务上面做限制,最好不采用IP限制。 对于其二,这类可以带来巨大网络风险。我们必须加以纠正。

需要对getip 进行修改,得到安全的getip函数。

这类问题,其实很容易出现,以前我就利用这个骗取了大量伪装投票。有它的隐蔽性,其实只要我们搞清楚了,某些值来龙去脉的话。理解了它的原理,修复该类bug将是非常容易。

题外话,做技术,有三步,先要会做,会解决;后要思考为什么要这么做,原因原理是什么;最后是怎么样做,有没有其它方法。多问问自己,你发现距离技术真理越来越近。你做事会越来越得心应手的!

作者:chengmo QQ:8292669

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Xiaohongshu가 IP 주소를 표시하지 않도록 설정하는 방법은 무엇입니까? 도시를 찾기 위해 ID를 어떻게 변경합니까? Xiaohongshu가 IP 주소를 표시하지 않도록 설정하는 방법은 무엇입니까? 도시를 찾기 위해 ID를 어떻게 변경합니까? Mar 27, 2024 pm 03:00 PM

Xiaohongshu는 사용자가 일상을 공유하고 좋아하는 제품을 발견할 수 있는 인기 있는 소셜 전자상거래 플랫폼입니다. 일부 사용자는 개인 정보 보호에 더 민감하며 온라인 개인 정보 보호를 위해 자신의 IP 주소가 Xiaohongshu에 표시되지 않기를 바랍니다. 그렇다면 Xiaohongshu가 IP 주소를 표시하지 않도록 설정하는 방법은 무엇입니까? 이 기사에서는 이 질문에 대해 자세히 답변할 것입니다. 1. Xiaohongshu가 IP 주소를 표시하지 않도록 설정하는 방법은 무엇입니까? 1. Xiaohongshu 설정 수정: Xiaohongshu 앱을 열고 오른쪽 하단에 있는 "나"를 클릭하여 개인 센터에 들어갑니다. 그런 다음 아바타를 클릭하여 계정 설정으로 들어갑니다. 계정 설정에서 "개인정보 설정"을 찾아 클릭하여 들어갑니다. 여기에서 IP 주소에 대한 설정 옵션을 찾을 수 있습니다. 이 옵션을 끄시면 됩니다. 2. 캐시 지우기: 때때로 Xiaohongshu에서 오류가 표시될 수 있습니다.

cmd를 사용하여 LAN의 모든 IP 주소를 보는 방법 cmd를 사용하여 LAN의 모든 IP 주소를 보는 방법 Feb 20, 2023 pm 02:22 PM

cmd를 사용하여 LAN에 있는 모든 IP를 보는 방법: 1. "Win+R" 단축키를 눌러 "실행" 창을 엽니다. 2. "실행" 창에 "CMD"를 입력한 후 Enter 키를 누릅니다. . 열린 "명령"에서 "프롬프트" 인터페이스에 "arp -a" 명령을 입력하고 Enter 키를 누릅니다. 4. 반환된 결과에서 통신하는 로컬 LAN에 있는 모든 컴퓨터의 IP 주소를 볼 수 있습니다. 기계와 함께.

Windows 10 IP 주소를 설정한 후 저장할 수 없는 문제를 해결하는 방법 Windows 10 IP 주소를 설정한 후 저장할 수 없는 문제를 해결하는 방법 Jul 08, 2023 pm 12:33 PM

때때로 모든 사람이 IP 주소를 수동으로 수정해야 하는 경우가 있지만 일부 Windows 10 고객은 IP 주소를 설정한 후에 저장할 수 없다고 보고합니다. 이 상황을 해결하는 방법은 무엇입니까? IP 주소를 입력하는 중 오류가 발생하여 기본적으로 IP 주소가 저장됩니다. 서브넷 마스크와 함께 서브넷 접두사가 작성되었는지 확인할 수 있습니다. 그렇다면 변경 후 정상적으로 저장하면 됩니다. IP 주소. Windows 10 IP 주소를 설정한 후 저장할 수 없는 문제를 해결하는 방법: 오류 그림은 다음과 같습니다. 오류입니다. 그림과 같이 서브넷 마스크가 아닌 서브넷 접두사 길이입니다. 위 그림과 같이 실제로 많은 사용자들이 서브넷 접두어를 서브넷 마스크로 기재해 두는 경우가 많습니다.

Xiaomi 휴대폰의 IP 주소는 어디에 있습니까? Xiaomi 휴대폰의 IP 주소는 어디에 있습니까? Feb 29, 2024 pm 06:10 PM

Xiaomi 휴대폰의 IP 주소는 어디에 있습니까? Xiaomi 휴대폰에서 IP 주소를 확인할 수 있지만 대부분의 사용자는 IP 주소를 확인할 수 있는 곳을 모릅니다. 다음은 Xiaomi 모바일의 IP 주소를 확인하는 방법에 대한 그래픽 튜토리얼입니다. 에디터가 가져온 폰. 관심있는 분들은 오셔서 구경해보세요! Xiaomi 휴대폰의 IP 주소는 어디에 있습니까? 1. 먼저 Xiaomi 휴대폰에서 설정 기능을 열고 [내 장치]를 클릭하여 들어갑니다. 2. 그런 다음 내 장치 기능 페이지에서 [모든 매개변수] 서비스를 클릭합니다. 그런 다음 모든 매개변수 페이지에서 아래쪽으로 슬라이드하여 [상태 정보]를 선택합니다. 4. 마지막으로 상태 정보 인터페이스에서 IP 주소를 볼 수 있습니다.

Xianyu_Share의 IP 주소를 변경하는 방법 Xianyu의 IP 주소를 변경하는 방법 Xianyu_Share의 IP 주소를 변경하는 방법 Xianyu의 IP 주소를 변경하는 방법 Mar 20, 2024 pm 05:06 PM

Xianyu는 매우 실용적인 중고 거래 플랫폼입니다. 여기서 우리는 다양한 제품을 구매하고 우리 자신의 유휴 품목을 판매할 수 있습니다. 아래 에디터와 함께 살펴보시죠! Xianyu IP 주소 수정 방법을 공유하세요. 먼저 Xianyu 소프트웨어를 열면 왼쪽 상단에 해산물 시장, 추천, 주소 및 기타 옵션이 표시됩니다. 2. 그런 다음 주소 페이지에서 주소 옆에 있는 [아래쪽 화살표]를 클릭합니다. 3. 마지막 클릭 후 도시 선택 페이지에서 도시를 클릭합니다.

Douyin IP 주소의 위치를 ​​변경하는 방법은 무엇입니까? IP 주소의 위치가 변경되는 이유는 무엇입니까? Douyin IP 주소의 위치를 ​​변경하는 방법은 무엇입니까? IP 주소의 위치가 변경되는 이유는 무엇입니까? Mar 21, 2024 pm 06:30 PM

사용자들은 Douyin을 통해 자신의 삶을 공유하고, 자신의 재능을 뽐내며, 전국은 물론 전 세계 네티즌들과 소통합니다. 일부 사용자는 개인 정보 보호 또는 지리적 제한과 같은 이유로 Douyin에서 IP 주소를 변경하기를 원합니다. 그렇다면 Douyin IP 주소는 어떻게 위치를 변경합니까? 1. Douyin IP 주소의 위치를 ​​변경하는 방법은 무엇입니까? 프록시 서버는 사용자 요청을 인터넷으로 전달하고 응답을 반환하는 데 사용되는 중개 서비스입니다. 프록시 서버를 구성하면 사용자는 실제 IP 주소를 숨기고 IP 주소를 변경할 수 있습니다. 이 접근 방식은 사용자 개인 정보를 보호하고 네트워크 보안을 향상시키는 데 도움이 됩니다. 프록시 서버를 사용하여 제한된 콘텐츠에 액세스하거나 지리적 위치 제한을 우회할 수도 있습니다. 전반적으로 프록시 서버를 사용하는 것은 사용자가 인터넷을 보다 안전하고 자유롭게 탐색하는 데 도움이 되는 실용적인 네트워크 도구입니다.

IP 주소는 몇 개의 이진수로 구성됩니까? IP 주소는 몇 개의 이진수로 구성됩니까? Mar 01, 2023 pm 04:35 PM

IP 주소는 32비트 또는 128비트 이진수로 구성됩니다. IP 주소는 IP 프로토콜에서 제공하는 통합 주소 형식입니다. 1. IPv4 주소는 점으로 구분된 10진수 표기법으로 표현되는 32비트 이진수로 구성되며 8비트, 즉 4개의 0으로 나뉩니다. ~255 10진수; 2. IPv6 주소는 점으로 구분된 16진수로 표현된 128비트 이진수로 구성되며, 8비트로 나누어집니다. 즉, 0x00부터 0xff까지의 16개의 16진수입니다.

인터넷의 모든 호스트에는 다음과 같은 고유한 주소 식별자가 있습니다. 인터넷의 모든 호스트에는 다음과 같은 고유한 주소 식별자가 있습니다. Aug 22, 2022 pm 03:24 PM

각 호스트에는 "IP 주소"라는 고유한 주소 식별자가 있습니다. IP 주소는 IP 프로토콜에서 제공하는 통일된 주소 형식으로, 물리적 주소의 차이를 보호하기 위해 인터넷상의 각 네트워크와 각 호스트에 고유한 논리적 주소를 할당합니다. 이 고유한 주소로 인해 사용자는 연결된 컴퓨터에서 작업할 때 수천 대의 컴퓨터에서 필요한 개체를 효율적이고 편리하게 선택할 수 있습니다.

See all articles