建议使用以下浏览器,以获得最佳体验 IE 9.0+以上版本 Chrome 31+谷歌浏览? Firefox 30+ 火狐浏览?
CDN文档 >网站接入CDN后如何获取客户端真实IP

网站接入CDN后如何获取客户端真实IP

本内容发表于 2018-05-17

接入 CDN 后,源站看到的直连 IP 多为边缘节点地址。若要统计访客地域、做风控或审计,需要恢复客户端真实 IP。核心原则是:在可信链路上传递,并在应用层只信任指定代理注入的字段,避免伪造。

一、常见 HTTP 头字段

不同厂商字段名可能不同,常见族系包括:

  • X-Forwarded-For(XFF):多级代理时形成「客户端, 代理1, 代理2」列表,取最左侧仍需结合信任边界判断。
  • X-Real-IP:部分场景由最近一层代理写入单一客户端地址。
  • 厂商自定义头(如 True-Client-IP 等):以所使用 CDN 文档为准。

二、可信链与伪造风险

攻击者可直接构造 XFF。应在仅接受来自 CDN 边缘网段的连接的前提下,由边缘覆盖或追加真实信息;应用服务忽略来自公网直连请求中的伪造 XFF。若存在「CDN → 自有反向代理 → 业务」多级结构,需在每一跳明确谁负责覆盖、谁负责追加

三、回源与日志对齐

  1. 在控制台开启「回源携带客户端 IP」相关选项,并核对回源请求样例。
  2. Web 服务器(Nginx/Apache)使用 real_ip 模块或等价机制,将remote_addr 重写为真实客户端,再输出到访问日志。
  3. 应用若读取 Servlet/Request 封装,确认框架是否已解析 XFF;避免重复解析导致双次取左错误。

四、合规与安全

真实 IP 属于个人信息范畴时,需在隐私政策中披露用途,并限制存储周期。风控规则(限频、黑名单)应对齐同一套 IP 来源,避免「日志 IP 与风控 IP 不一致」。具体头名称与开关以飞盾 CDN 当前版本文档为准。

置顶