WEB应用防火墙 WAF-获取客户端真实IP:通过WAF直接获取客户端真实IP

时间:2024-07-05 10:16:17

通过WAF直接获取客户端真实IP

网站接入WAF后,WAF作为一个反向代理部署于客户端和服务器之间,实现网站安全防护。WAF获取真实IP原则请参见WAF获取真实IP是从报文中哪个字段获取到的?

下面为您介绍如何通过X-Forwarded-For和X-Real-IP变量获取客户端真实IP地址的方法:

  • WAF使用X-Forwarded-For的方式获取客户端的真实IP地址。

    WAF将“真实的客户端IP”放在HTTP头部的“X-Forwarded-For”字段,格式如下:

    1
    X-Forwarded-For: 用户真实IP, 代理服务器1-IP 代理服务器2-IP...
    

    当使用此方式获取客户端真实IP时,获取的第一个地址就是客户端真实IP。

    各种语言通过调用SDK接口获取X-Forwarded-For字段的方式:
    • ASP:
      Request.ServerVariables("HTTP_X_FORWARDED_FOR")
    • ASP.NET(C#):
      Request.ServerVariables["HTTP_X_FORWARDED_FOR"]
    • PHP:
      $_SERVER["HTTP_X_FORWARDED_FOR"]
    • JSP:
      request.getHeader("HTTP_X_FORWARDED_FOR")
  • WAF服务还支持使用X-Real-IP变量,获取客户的来源IP(使用过程中考虑了后面经过的多层反向代理对该变量的修改)。
    各种语言通过调用SDK接口获取X-Real-IP字段的方式:
    • ASP:
      Request.ServerVariables("HTTP_X_REAL_IP")
    • ASP.NET(C#):
      Request.ServerVariables["HTTP_X_REAL_IP"]
    • PHP:
      $_SERVER["HTTP_X_REAL_IP"]
    • JSP:
      request.getHeader("HTTP_X_REAL_IP")
support.huaweicloud.com/bestpractice-waf/waf_06_0020.html