网站如果挂到 cdn,不就不能获取到来访用户的真是 ip 了吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
liangmishi

网站如果挂到 cdn,不就不能获取到来访用户的真是 ip 了吗

  •  
  •   liangmishi 2016 年 5 月 9 日 7024 次点击
    这是一个创建于 3629 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网站挂上 cdn ,感觉还挺快的,但是问题来了,服务器上获取到的 ip 都是 cdn 的代理 ip ,那这样的话不就不能准确的判断访问者的 ip 了吗

    第 1 条附言    2016 年 5 月 9 日
    header 中的 X-forwarded-for 记录的是真是 ip 。
    20 条回复    2016-05-10 14:15:13 +08:00
    Busy
        1
    Busy  
       2016 年 5 月 9 日   1
    set_real_ip_from cdn_ip;
    ryd994
        2
    ryd994  
       2016 年 5 月 9 日 via Android   1
    会添加 X-forwarded-for 或者 client-IP
    注意验证来源 IP ,只有来自 CDN IP 地址段的才信任这些 header
    liangmishi
        3
    liangmishi  
    OP
       2016 年 5 月 9 日
    @ryd994 嗯嗯,确实如此,在 header 里可以找到 X-forwarded-for ,这就是真实 ip 。 不过为什么还要验证是否来自 CDN 呢。既然是挂了 CDN ,那所有访问都应该是从 CDN 代理服务器那边过来的。除非是知道 ip ,直接通过 ip 访问
    liangmishi
        4
    liangmishi  
    OP
       2016 年 5 月 9 日
    @Havee 在 nginx 里配置是吗!我去试试
    kn007
        5
    kn007  
       2016 年 5 月 9 日
    让 CDN 传输过来指定头部,后端只信任指定的头部
    bossfrog
        6
    bossfrog  
       2016 年 5 月 9 日 via Android
    所以每个请求都回源好了(滑稽脸)
    bossfrog
        7
    bossfrog  
       2016 年 5 月 9 日 via Android
    小明被恶霸殴打,雇了保镖来招架,爽是爽了,但是不知道有谁想殴打他了,大失所望!
    iyaozhen
        8
    iyaozhen  
       2016 年 5 月 9 日
    CDN 应该支持向后传客户端 IP 吧
    liangmishi
        9
    liangmishi  
    OP
       2016 年 5 月 9 日
    @kn007 cnd 有传一个 X-forwarded-for 头
    liangmishi
        10
    liangmishi  
    OP
       2016 年 5 月 9 日
    @bossfrog 要么被打 要么失望...
    liangmishi
        11
    liangmishi  
    OP
       2016 年 5 月 9 日
    @iyaozhen 支持的, X-forwarded-for
    lhbc
        12
    lhbc  
       2016 年 5 月 9 日 via Android
    注意 X-forwarded-for 可能有多个 IP ,如果浏览器使用了代理
    liangmishi
        13
    liangmishi  
    OP
       2016 年 5 月 9 日
    @lhbc 取最后一个
    xuhaoyangx
        14
    xuhaoyangx  
       2016 年 5 月 9 日
    @liangmishi X-forwarded-for 最后一个不一定对,有些网络会把内网的 ip 带上
    liangmishi
        15
    liangmishi  
    OP
       2016 年 5 月 9 日
    @xuhaoyangx 这个...那怎么办
    shiji
        16
    shiji  
       2016 年 5 月 9 日
    具体取决的 CDN 。
    我记得 Incapsula 我试过,会直接把 X-forwarded-for 改成发送数据包的客户 IP ,客户端是没法伪造的,伪造的会被直接覆盖掉。所以也不会存在多个 X-forwarded-for 的情况
    qgy18
        17
    qgy18  
       2016 年 5 月 9 日 via iPhone   1
    liangmishi
        18
    liangmishi  
    OP
       2016 年 5 月 9 日
    @shiji 我试了下 伪造了个 X-forwarded-for 然后在服务器端 获取 X-forwarded-for 里面有真实的 ip 也有伪造的
    liangmishi
        19
    liangmishi  
    OP
       2016 年 5 月 9 日
    @qgy18 受益匪浅
    pine
        20
    pine  
       2016 年 5 月 10 日
    统计代码不走 cdn 不就行了,多简单的事。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3383 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 61ms UTC 11:01 PVG 19:01 LAX 04:01 JFK 07:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86