V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
ChoateYao
V2EX  ›  云计算

阿里云使用 SLB 如何获取用户真实地址?

  •  
  •   ChoateYao · 2018-11-23 16:04:13 +08:00 · 3904 次点击
    这是一个创建于 2203 天前的主题,其中的信息可能已经有所发展或是发生改变。

    阿里云使用 SLB 如何获取用户真实地址?

    参考文档: https://help.aliyun.com/document_detail/54007.html

    当用户正常请求的时候可以解析出真实的地址,已经对阿里云内部 IP 进行白名单验证。

    但是,用户自行伪造 x-forwarded-for 的时候,那么用户真实 IP 的地址将会自动附加到最后面。

    curl -H "X-Forwarded-For: 107.186.12.3, 102.37.36.6, 16.7.3.4" https://xxx.com
    
    [HTTP_X_FORWARDED_FOR] => 107.186.12.3, 102.37.36.6, 16.7.3.4, 14.152.49.160
    
    6 条回复    2018-12-25 15:54:50 +08:00
    opengps
        1
    opengps  
       2018-11-23 16:56:47 +08:00
    你自己都说了,最后的是真实 ip,那就写代码截取吧
    odirus
        2
    odirus  
       2018-11-23 17:02:32 +08:00
    从左到右找到第一个不是内网地址的 IP
    xyjincan
        3
    xyjincan  
       2018-11-23 22:29:08 +08:00 via Android
    ,,,啥原理
    ChristopherWu
        4
    ChristopherWu  
       2018-11-23 23:09:26 +08:00
    @xyjincan 毛遂自荐,请参考我这篇文章: https://yonghaowu.github.io/2018/11/23/get_reql_ip/
    ChoateYao
        5
    ChoateYao  
    OP
       2018-11-27 17:59:49 +08:00
    @opengps 自行伪造的情况下面和正常请求根本没有办法区分。你张嘴就来取最后一个,将来出了问题,你们是要负责任的,明白吗?
    C0reFast
        6
    C0reFast  
       2018-12-25 15:54:50 +08:00
    使用 4 层负载均衡,直接拿 clientIp 就是用户发起 tcp 连接的那个真实客户端地址。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5735 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 03:10 · PVG 11:10 · LAX 19:10 · JFK 22:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.