客户端如何伪造 Go(http.Request)中的 RemoteAddr 的信息,使得 Go 开发的 Http server 获取到假的地址信息

2018-01-24 18:34:23 +08:00
 sherry00
朋友用 Go 搞了一个简单的 Http Server,通过 IP 地址(客户端的 IP 地址他是通过 Reques 的 RemoteAddr 获取的)限制用户的访问次数,然后让我帮忙测测有什么方式可以绕开,我用传统的 Header 中加 IP 方式,没搞定。

感觉 Go 中的 RemoteAddr 应该是拿的更加底层的 IP 信息。
// RemoteAddr allows HTTP servers and other software to record
// the network address that sent the request, usually for
// logging. This field is not filled in by ReadRequest and
// has no defined format. The HTTP server in this package
// sets RemoteAddr to an "IP:port" address before invoking a
// handler.
// This field is ignored by the HTTP client.
RemoteAddr string

V 站的大佬们,有什么方式可以 Fake 客户端的 IP 地址,使得 RemoteAddr 获取到的 IP 是伪造后的?

是不是要修改底层的协议才行?

顿时对 Go 好感倍增。
4607 次点击
所在节点    问与答
16 条回复
qsnow6
2018-01-24 19:00:05 +08:00
这跟修改 fake 我的身份证号码一个难度
fengdra
2018-01-24 20:55:34 +08:00
没学过计算机网络吧?
blless
2018-01-24 21:00:38 +08:00
装一个假系统
cevincheung
2018-01-24 21:01:25 +08:00
无法伪造
tomczhen
2018-01-24 21:02:04 +08:00
直接用代理就能避开单纯 IP 限制,而且单纯通过 IP 限制以目前国内 ISP 大量分配内网 IP 的情况看,很容易误伤。

反倒是服务端这边如果有做反代,需要添加额外的 header 来让后端获取正确的 ip。
think2011
2018-01-24 21:04:45 +08:00
装一个假系统
lzvezr
2018-01-24 21:06:08 +08:00
一般没法伪造,除了代理
但是通过 IP 限制访问的话,小站没问题,大站的话会死一堆内网用户和移动用户
kfll
2018-01-24 22:10:09 +08:00
你让你朋友套个反代,再让他想办法获取正确的客户端 IP。
然后再讨论能否伪造他拿到的 IP。
zn
2018-01-24 22:29:30 +08:00
唯一一个办法:入侵服务端,hook 掉相关函数。

你要是找到别的办法,我拜你为师。
jingniao
2018-01-24 22:55:04 +08:00
计算机网络基础………
WordTian
2018-01-24 23:02:24 +08:00
客户端用 linux 系统,iptables 用 mangle 表修改源 ip ?
WordTian
2018-01-24 23:04:36 +08:00
@WordTian 补充下,这个客户端系统得有公网 ip。

或者简单点,客户端挂$$访问
sherry00
2018-01-24 23:06:58 +08:00
感谢大佬们的建议(正在羞愧的看计算机网络....
flynaj
2018-01-25 08:35:23 +08:00
RemoteAddr 是服务端参数,是你客户端的真实 ip,除非用代理
julyclyde
2018-01-25 12:35:44 +08:00
什么叫叫“传统的”方式?从来就没有这么个传统
julyclyde
2018-01-25 12:35:58 +08:00
现在写程序都不需要学习计算机基础了吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/425657

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX