java web应用获取source ip问题

2016-02-02  本文已影响0人  nutz

要点:

应用获取客户端ip是一个常见的需求,像投票系统是比较典型的。ip是投票规则的重要组成部分。下面分两个部分来讨论这个话题。

source ip 能否伪造

http请求当中,ip理论上是无法伪造的。因为建立 TCP 连接需要三次握手,如果伪造了源 IP,无法建立 TCP 连接,更不会有后面的 HTTP 请求。但以下情况例外:

apache+tomcat 如何获取source ip

在java应用中,获取source ip一般通过request.getRemoteAddr()完成,这个一般没什么疑问,但有时,你会遇到问题。
以apache+tomcat部署场景为例。apache做反向代理,tomcat为backend server。经测试发现:

如果部署方式是基于http模块,又要获取source ip,此时应对web server做配置。参见 X-Forwarded-For

上一篇下一篇

猜你喜欢

热点阅读