【发布时间】:2015-01-10 09:32:00
【问题描述】:
我想获取客户端 IP。 基于该 IP,我想授予对应用程序的访问权限。 目前我正在使用此代码从 cookie 中获取 IP:
/**
* Gets the ip.
*
* @return the ip
*/
public static String getIP() {
return Request play.mvc.Controller.request().remoteAddress();
}
但它不安全,因为用户可以轻松更改它。
所以我想从服务器连接中获取物理 IP 地址,而不是从 cookie 中获取这个 IP 地址。
我怎样才能做到这一点?请帮忙。
【问题讨论】:
-
我已经测试过了。我可以在 linux shell 中使用此命令轻松更改 IP 地址:
curl --header "X-Forwarded-For: 1.2.3.4" "localhost:9000" -
您是在客户端/服务器之间进行相互身份验证,还是在受信任/封闭的环境中运行?基于客户端 IP 的身份验证/访问控制听起来可能会给您带来麻烦。欺骗 HTTP 标头很容易,也可以在几乎所有其他级别进行欺骗。
标签: java ip netty playframework-2.2 server