X-Forwarded-For出现非IP文本原因及工作原理咨询
X-Forwarded-For(XFF)的工作机制
- XFF是个HTTP请求头,核心作用是解决反向代理、负载均衡场景下,后端服务器拿不到客户端真实IP的问题。
- 正常流转逻辑是:客户端发请求到代理服务器,代理把自己接收的客户端IP追加到XFF头里,再转发给后端。比如客户端IP是
192.168.1.100,经过两层代理10.0.0.1和10.0.0.2,后端收到的XFF就会是192.168.1.100, 10.0.0.1。 - 关键提醒:这个头完全不受强制校验,请求方想怎么改就怎么改,客户端可以随意伪造、篡改XFF的内容。
为何XFF字段会出现非IP格式内容
- 攻击者伪造测试:你碰到的情况基本是攻击者在测XSS或其他漏洞时故意搞的。他们这么做的目的可能有两个:
- 往XFF里塞特殊字符(比如
<、"、单引号)和域名、自定义字符串,测试你的过滤逻辑有没有漏洞,能不能被绕过触发XSS。 - 把Burp Collaborator这类工具的域名放进XFF,看你的服务器会不会把这个头的内容输出到页面或日志里,以此判断有没有可利用的注入点。
- 往XFF里塞特殊字符(比如
- 非规范客户端/代理:极少数情况下,一些不正规的客户端或小代理服务器可能会错误地把主机名、自定义标识写到XFF里,但这种情况比攻击者伪造少见得多。
- 安全测试行为:也可能是安全测试人员在对你的网站做渗透测试,故意构造各种畸形请求头来验证你的防护机制好不好用。
内容的提问来源于stack exchange,提问作者Ashhh
相关产品推荐
相关产品推荐

