X_Forward_For(XXF)获取用户IP

用户访问web server时,可能会经过多层proxy server,此时获取用户IP的方法:

1、用户访问链经过CDN:统一配置xxf模式,CDN_SRC_IP存在,用户IP即为第一个IP:{用户IP,proxy server1 IP,proxy server2 IP....}

2、不经过CDN:统一配置XXF模式,如果XXF只存在一个IP,即为用户IP;如果存在多个IP,XXF形式为:{ proxy server IP.....,用户IP }或者{proxy server IP.....,用户IP,rpoxy server IP}

3、不存在XXF:用户ip为remote_addr


可以通过Firefox浏览器的firebug插件查看相应的用户访问一个服务所经过的链路:如下图所示


Via——当客户端请求到达第一个代理服务器时,该服务器会在自己发出的请求里面添加 Via 头部,并填上自己的相关信息,当下一个代理服务器 收到第一个代理服务器的请求时,会在自己发出的请求里面复制前一个代理服务器的请求的Via 头部,并把自己的相关信息加到后面, 以此类推,当 OCS 收到最后一个代理服务器的请求时,检查 Via 头部,就知道该请求所经过的路由。


通过Firefox modify headers模拟XXF链路访问nginx主机,可以通过nginx日志看到记录的XXF形式:





后续待问题:通过Firefox modify header可以用假IP向服务器发送请求,如何阻挡伪IP?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章