如果你希望学习 CDN 相关知识,那么建议你可以遍历以下软件的说明文档。
› NGINX
› cURL
Jackyxiaoc
V2EX  ›  CDN

使用阿里云的 slb 之后如何防止有人在 X-FORWARDED-FOR 头伪造 IP, slb 会原样传递,导致的假的 ip。有大神知道怎么解决这个问题吗?

  •  
  •   Jackyxiaoc · Apr 22, 2019 · 6872 views
    This topic created in 2756 days ago, the information mentioned may be changed or developed.
    使用阿里云的 slb 之后如何防止有人在 X-FORWARDED-FOR 头伪造 IP,slb 会原样传递,导致的假的 ip。
    伪造 ip 成本是不是特别低 emmm...
    15 replies  •  2022-08-11 10:32:36 +08:00
    yimuyimu
    yimuyimu
    Apr 22, 2019 via Android
    1
    其他云也会遇到这个问题阿。https 加双向证书的方案试试
    yidinghe
    yidinghe
    PRO
    Apr 22, 2019 via Android
    2
    提工单,问清楚就行了。
    Jackyxiaoc
    Jackyxiaoc
    OP
    Apr 22, 2019
    3
    @yimuyimu 谢谢

    @yidinghe 工单两天了没解决方案
    leo108
    leo108
    Apr 22, 2019
    4
    建议深入了解一下 XFF 头,不要随便搜一个所谓『获取真实访客 IP 』的代码就拿来用。

    简单一句话就是只信任来自可信反代的前一个 XFF 头。
    imdong
    imdong
    Apr 22, 2019
    5
    网上能找到的获取客户端 IP 的代码,基本上都是 同一个。
    反正我开发 PHP 的,找到的代码全都是 N 年前的史前代码。
    并且,全都有 IP 伪造的风险。

    至于阿里,我使用 CDN 的时候,他是有一个 ALI_CDN_READ_REMOTE_IP 这个字段的

    自己看下,具体字段名我不记得,看下有没有。
    这个是无法被伪造的。
    auser
    auser
    Apr 22, 2019
    6
    方案 1: 使用 TCP 监听,socket 层的地址就是客户端的真实 IP 地址。基于 TCP 三次握手,无法伪造。
    方案 2: 从请求头从拿 RemoteIp 字段。这个类似 5 楼所述,阿里云 CDN 设置的字段。
    opengps
    opengps
    Apr 22, 2019
    7
    这个问题,好多 cdn 都有
    Livid
    Livid
    MOD
    PRO
    Apr 22, 2019❤️1
    8
    1. 每一个 CDN 都会有自己用于实现这个目的的独特头部。
    2. 如果 CDN 支持部署边缘计算逻辑,那么可以自己写一些代码来更安全地实现这个。
    blless
    blless
    Apr 23, 2019 via Android
    9
    多层代理会有多个 ip,只取最后一个就好,按楼上的说法,只有阿里这个负载均衡反代才是合法的,只要相信阿里这个就好
    moult
    moult
    Apr 23, 2019 via iPhone
    10
    其实这问题无解。网站不得不无条件信任 XFF 头。因为在安卓的微信浏览器下面,所有的请求都会经过腾讯的服务器中转,中转之后,直接获取到的 IP 是腾讯服务器的 IP,只能信任 XFF 头来获取真实的用户 IP 地址。
    richard1122
    richard1122
    Apr 23, 2019
    11
    前端时间研究过这个问题,XFF 头是依次增加 ip 的,不会丢弃掉以前的。

    你确认自己后端在一个可信的代理后面(比如自己部署的 nginx 或者云平台的网关)时,可以直接取最后一个。

    比如汤姆猫已经实现了这个逻辑,只需要配置一下,request 里面的 remote 地址就是正确的了。
    est
    est
    Apr 23, 2019 via Android
    12
    还是我有解的。你自己请求也加一个 xff 然后如果数据对不上就是被搞了
    sadpencil
    sadpencil
    Jan 26, 2021
    13
    @imdong 实际的字段名叫 HTTP_ALI_CDN_REAL_IP
    sadpencil
    sadpencil
    Jan 26, 2021
    14
    上一条打错了,@imdong 实际的字段名叫 ALI_CDN_REAL_IP
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1446 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 05:24 · PVG 13:24 · LAX 21:24 · JFK 00:24
    ♥ Do have faith in what you're doing.