4
回答
有人知道nginx日志中出现$http_x_forwarded_for值对应着多个IP是什么情况?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

在nginx日志其中一行日志如下:

61.147.92.105 - - [04/Jan/2014:09:04:26 +0800] "GET / HTTP/1.1" 200 18271 "-" "compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html" "8.8.8.6, 116.231.239.192" 0.011

出现了两个IP:"8.8.8.6, 116.231.239.192",感觉应该是有人把自己的采集器伪装成百度蜘蛛来采集资料了。

但是为什么会出现两个IP呢,如何配置把这两个IP可以过滤掉?


谢谢!

举报
javadeveloper
发帖于4年前 4回/15K+阅
共有4个答案 最后回答: 4年前

client, proxy1, proxy2

正常情况下,X-Forwarded-For信息是由代理服务器设置的,也就说代理服务器可以设置为隐藏真实用户的IP.你可以试着用GoAgent访问你的网站,如果你发现HTTP_X_FORWARDED_FOR信息为空,那可以说GoAgent是一个匿名代理,网站拿不到你的真正IP,网站只知道位于美国的GoAgent代理服务器IP.

另外 HTTP_X_FORWARDED_FOR信息也是很容易伪造的,设置个头信息就可以伪造了:

curl -H "X-Forwarded-For:192.168.0.1,192.168.0.2" http://127.0.0.1

正常情况 ,经过多次反向代理 (有时候是运营商的代理,有时候是内部代理) 会在 X-Forwarded-For  头追加自己的ip , 它们用逗号分隔 ,一般第一个会是真实iP  ,其他都是代理节点的 iP ,取第一个即可
嗯,刚刚也查询到了   HTTP_X_FORWARDED_FOR信息的说明,是存在这样的情况,看样子有人在伪装成百度蜘蛛在爬取网站资料。
顶部