关于伪造IP地址的疑问

Posted 我是菜鸟在奔跑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于伪造IP地址的疑问相关的知识,希望对你有一定的参考价值。

1、使用火狐浏览器的Modify Headers插件可以伪造IP,,Add, Headername=X_FORWARDED_FOR,Value=IP;

     然后确定,刷新页面即可;

    问题就是这个Headername为什么只能是X_FORWARDED_FOR,而不能是HTTP_CLIENT_IP(客户端ip)或者REMOTE_ADDR,

     小结:$_SERVER[‘REMOTE_ADDR‘] //当前用户 IP ,$_SERVER["HTTP_CLIENT_IP"]//d代理客户端IP,$_SERVER["HTTP_X_FORWARDED_FOR"]//

    X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。它不是RFC中定义的标准请求头信息,在squid缓存代理服务器开发文档中可以找到该项的详细介绍。标准格式如下:X-Forwarded-For: client1, proxy1, proxy2。

这一HTTP头一般格式如下:
X-Forwarded-For: client1, proxy1, proxy2, proxy3
其中的值通过一个 逗号+空格 把多个IP地址区分开, 最左边(client1)是最原始客户端的IP地址, 代理服务器每成功收到一个请求,就把请求来源IP地址添加到右边。 在上面这个例子中,这个请求成功通过了三台代理服务器:proxy1, proxy2 及 proxy3。请求由client1发出,到达了proxy3(proxy3可能是请求的终点)。请求刚从client1中发出时,XFF是空的,请求被发往proxy1;通过proxy1的时候,client1被添加到XFF中,之后请求被发往proxy2;通过proxy2的时候,proxy1被添加到XFF中,之后请求被发往proxy3;通过proxy3时,proxy2被添加到XFF中,之后请求的的去向不明,如果proxy3不是请求终点,请求会被继续转发。
鉴于伪造这一字段非常容易,应该谨慎使用X-Forwarded-For字段。正常情况下XFF中最后一个IP地址是最后一个代理服务器的IP地址, 这通常是一个比较可靠的信息来源。

 

以上是关于关于伪造IP地址的疑问的主要内容,如果未能解决你的问题,请参考以下文章

如何向PHP伪造自己的ip

为啥不能伪造 IP 地址?

[WEB安全]伪造IP地址进行爆破的BurpSuite插件:BurpFakeIP

如何伪造 udp 数据包的源 IP 地址?

伪造Http请求IP地址

使用CURL伪造来源网址与IP