维基百科,自由的百科全书
X-Forwarded-For
(XFF
)是用来识别通过HTTP
代理
或负载均衡
方式连接到Web服务器
的客户端最原始的IP地址
的HTTP请求头字段。 Squid
缓存代理服务器的开发人员最早引入了这一HTTP头字段,并由IETF
在Forwarded-For HTTP头字段标准化草案
中正式提出。
当今多数缓存服务器的使用者为大型ISP,为了通过缓存的方式来降低他们的外部带宽,他们常常通过鼓励或强制用户使用代理服务器来接入互联网
。有些情况下, 这些代理服务器是透明代理, 用户甚至不知道自己正在使用代理上网。
如果没有XFF或者另外一种相似的技术,所有通过代理服务器的连接只会显示代理服务器的IP地址(而非连接发起的原始IP地址),
这样的代理服务器实际上充当了匿名服务提供者的角色,
如果连接的原始IP地址不可得,恶意访问的检测与预防的难度将大大增加。XFF的有效性依赖于代理服务器提供的连接原始IP地址的真实性,因此,
XFF的有效使用应该保证代理服务器是可信的, 比如可以通过建立可信服务器白名单的方式。
[编辑
]
格式
这一HTTP头一般格式如下:
X-Forwarded-For: client1, proxy1, proxy2
其中的值通过一个 逗号+空格 把多个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地址, 这通常是一个比较可靠的信息来源。
[编辑
]
使用
在代理转发
及反向代理
中经常使用X-Forwarded-For 字段。
[编辑
]
代理转发
在 代理转发
的场景中,你可以通过内部代理链以及记录在网关设备上的IP地址追踪到网络中客户端的IP地址。处于安全考虑,网关设备在把请求发送到外网(因特网
)前,应该去除 X-Forwarded-For 字段里的所有信息。这种情况下所有的信息都是在你的内部网络内生成,因此X-Forwarded-For字段中的信息应该是可靠的。
[编辑
]
反向代理
在 反向代理
的
情况下,你可以追踪到互联网上连接到你的服务器的客户端的IP地址,
即使你的网络服务器和互联网在路由上是不可达的。这种情况下你不应该信任所有X-Forwarded-For信息,其中有部分可能是伪造的。因此需要建立
一个信任白名单来确保X-Forwarded-For中哪些IP地址对你是可信的。
最后一次代理服务器的地址并没有记录在代理链中,因此只记录 X-Forwarded-For 字段是不够的。完整起见,Web服务器应该记录请求来源的IP地址以及X-Forwarded-For 字段信息。
[编辑
]
Web服务器日志中的X-Forwarded-For
大多数Web服务器可以通过配置在日志中记录X-Forwarded-For。 Apache中可以非常简单地修改配置来实现,但MS IIS 6及以下的版本需要第三方软件支持来实现。 [1]
IIS7用户可以从IIS.net获得免费的IIS相关组件 [2]
来实现
[编辑
]
参见
[编辑
]
引用
-
^
Winfrasoft X-Forwarded-For for IIS
是一个通过添加XFF信息替换C-IP信息的IIS 插件。
-
^
blogs.iis.net
[编辑
]
外部链接
分享到:
相关推荐
标题“Chrome插件:X-Forwarded-For Header”揭示了本文将深入探讨一个专门针对Google Chrome浏览器的扩展应用,该插件的主要功能是处理和设置HTTP头中的`X-Forwarded-For`字段。`X-Forwarded-For`(简称XFF)头是一...
X-Forwarded-For火狐插件
代理上网支持X-forwarded-For和X-forwarded-By功能说明 本文档旨在为ACSG v12.0.23以上版本的代理上网功能提供详细的功能说明,着重于X-forwarded-For和X-forwarded-By两个关键功能的使用和配置。 一、介绍 代理...
例如,"X-Forwarded-For: client1, proxy1, proxy2" 这样的格式表明client1是客户端的IP,proxy1和proxy2分别是两个代理服务器的IP。 XFF的主要作用在于: 1. **识别客户端IP**:在多层代理环境中,服务端无法直接...
x-forwarded-forheader1.0.1.1.1火狐老插件,可以直接本地安装在旧版火狐上面,可以用的。
此扩展允许您快速更新各种 X-Forwarded-For、X-Originating-IP、X-Remote-IP 和 X-Remote-Addr HTTP 标头 打开Chrome浏览器的扩展程序: 地址栏直接输入:chrome://extensions/ 把下载到的文件解压后,点击加载已...
《X-Forwarded-For与Nginx反向代理中的IP追踪详解》 在现代互联网环境中,由于代理服务器和负载均衡器的广泛应用,追踪HTTP请求的真实来源变得复杂。此时,`X-Forwarded-For`头部字段就显得尤为重要。本文将深入...
此扩展允许您快速更新X-Forwarded-For,X-Originating-IP,X-Remote-IP和X-Remote-Addr HTTP标头,以进行各种测试。 变更日志:v0.6.2-修复了干扰此扩展的Firefox版本的错误v0.6.1-修复了CORS预检请求的问题v0.6.0-...
《SANGFOR_AD_V4.8_X-Forwarded-For传输客户端ip到服务器配置指导书》是深信服科技有限公司提供的一份详细的技术文档,旨在帮助用户配置其AD(Active Directory)系统,以便在使用SANGFOR设备时能够通过X-Forwarded-...
Go软件包的X-Forwarded-For中间件xff是net / http中间件/处理程序,用于解析Golang中的Forwarded HTTP Extension。 用法示例安装xff:转到get github.com/sebest/xff编辑server.go:打包主X-Forwarded-For中间件转到...
x-forwarded-for
易语言伪造网页访问ip地址 结合HTTP扩展请求头 X-Forwarded-For 可以对客户端IP进行伪造 X-Forwarded-For 是一个 HTTP 扩展...因此,一般来说,我们要获得客户端地址,直接从 X-Forwarded-For 拿到第一个 IP 地址即可
X-Forwarded-For头的格式通常是这样的:`X-Forwarded-For: client, proxy1, proxy2`,其中"client"是原始客户端的IP地址,"proxy1, proxy2"是请求经过的代理服务器的IP地址。在多层代理环境中,这个头会不断更新,将...
从请求中解析X-Forwarded-For标头。 以相反的顺序返回地址数组,包括req的套接字地址(即索引0是套接字地址,最后一个索引是最远的地址,通常是最终用户)。 测验 $ npm test 执照 麻省理工学院
前进描述forwarded为Golang装饰/包装该解析X-Forwarded-For和X-Forwarded-Protocol报头和更新传递和相应。 它支持任意命名的单个标头和 Forwarded标头。用法示例极其简化的示例: package mainimport ("fmt""github....
hapi 转发 一个来信任x-forwarded-for例子 var Forwarded = require ( 'hapi-forwarded' ) ;server . pack . register ( Forwarded , function ( err ) { server . start ( ) ; // request.info.remoteAddress will ...
的Real IP中间件,将http.Request的RemoteAddr设置为解析X-Forwarded-For标头或X-Real-IP标头的结果。 用法 package main import ( "github.com/gin-gonic/gin" "github.com/thanhhh/gin-gonic-realip" ) func ...
x转发 X-Forwarded-For标头浏览器扩展 得到它 或
X-Forwarded-For头通常由反向代理添加,记录了请求经过的每个代理服务器的IP,第一个IP就是客户端的原始IP。 **安装mod_rpaf** 1. 首先,你需要下载并解压`mod_rpaf-0.6.tar.gz`文件。在命令行中,可以使用以下...
这篇教程将深入探讨如何在Python中编写一个简单的脚本来利用`X-Forwarded-For`字段绕过IP限制访问页面。 `X-Forwarded-For`(XFF)是一个非标准但广泛使用的HTTP扩展头部,主要用于记录客户端的真实IP地址。在负载...