前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >X-forward-For获取客户端IP原理

X-forward-For获取客户端IP原理

原创
作者头像
二锅头一桶天下
发布2024-04-15 19:12:30
1060
发布2024-04-15 19:12:30

通过x-forward-for获取到一个ip列表,通过逗号进行了隔离。

X-Forward-For:clientIP, server1IP, server2IP, server3IP;

从左往右就是客户端请求到最后的ip列表,所以第一个就是客户端ip。

假设反向代理是比如nginx,nginx可以设置:

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

但是发起请求的ip带的x-forward-for可能被自己伪造,这个无解。但是发起请求的ip不能被伪造,因此,使用x-real-ip设置为remote-add,将remote-add拼接到x-forward-for后面。

那么如何杜绝这种现象,既然携带的x-forward-for靠不住,那最外层nginx直接不用了,使用

proxy_set_header X-Forwarded-For $remote_addr;

直接获取真实ip,并赋值给x-forward-for。

最外层以外的在自己的可控范围之内,可以继续使用 $proxy_add_x_forwarded_for;

其他反向代理,比如apache,IIS6,IIS7没怎么用过,不太了解,待分析。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档