这对我来说有点混乱。
根据文档,如果有人通过代理访问cloudflare,cloudflare将依次按此顺序设置X-Forwarded-For标头:X-Forwarded-For: client-ip, proxy-ip
但是当我在rails中调用request.ip
时,它将返回proxy-ip
而不是client-ip
。
那么为什么没有铁路返回client-ip
?它是否与工业规范(https://en.wikipedia.org/wiki/X-Forwarded-For)不一致?
修改
这就是我如何快速测试Rails如何返回proxy-ip
command
============================
curl -H "X-Forwarded-For: 74.125.130.100, 206.190.36.45" http://localhost:3000/
index.html
============================
request.ip: <%= request.ip %>
request.remote_ip: <%= request.remote_ip %
我预计它会是74.125.130.100但它总是返回206.190.36.45
答案 0 :(得分:0)
我认识的专家指出:http://blog.gingerlime.com/2012/rails-ip-spoofing-vulnerabilities-and-protection/
Rails返回无法信任的链中最右边的ip。这是为了处理IP欺骗。