其他漏洞 - XFF (X-Forwarded-For) 伪造

  XFF伪造:通过篡改HTTP头字段(X-Forwarded-For)隐瞒真实IP地址,危害包括隐藏身份、绕过访问控制和污染日志

漏洞场景:原生漏洞场景

  • 前后端不分离
  • 模拟前后端分离

客户端直接访问服务端,未添加xff头

tips
  前后端不分离:服务端可以通过获取request.getRemoteAddr()获取客户端IP
  前后端分离:如果请求经过了代理服务器(Nginx、Apache)或者负载均衡,客户端和服务端之间增加了中间层,那么服务端无法直接拿到客户端的IP,request.getRemoteAddr()可能返回的是代理服务器的IP,此时,可以通过HTTP请求头X-Forwarded-For(或其他自定义请求头)来获取客户端IP
  格式为: X-Forwarded-For:client1,proxy1,proxy2(第一个ip为客户端真实ip,后面的为经过的代理服务器ip。现在大部分的代理都会加上这个请求头)

缺陷代码

安全场景:可信源IP过滤

  • 模拟前后端分离
tips
安全编码规范:
    1. 配置可信IP白名单,仅允许可信代理设置或修改该头信息。
    2. 限制XFF头格式(合法IPv4/IPv6地址、设定最大长度),防范恶意格式注入与缓冲区溢出攻击。
    3. 在身份校验和授权中,结合会话标识符、用户令牌等多因素验证,防止伪造导致的认证绕过。

缺陷代码