Ash*_*ish 6 java authentication ip networking
我想在我的网络中配置一台机器,以接受来自特定机器的所有呼叫而无需身份验证.为此,我计划使用客户端计算机的IP地址作为所需的信任因素,以允许未经检查的身份验证.
我担心的是,是否可以准确地确定java servlet中客户端的IP地址?我可以通过一些黑客机制来改变我在servlet中获得的IP,使我的服务器相信它是可靠的IP吗?
例如,如果我的服务器计算机配置为信任192.168.0.1,那么192.168.0.1以外的其他客户端是否可以假装为192.168.0.1并欺骗我的身份验证机制?
Vic*_*ari 17
您可以使用该类中的getRemoteAddr()方法HttpServletRequest来获取IP地址.但要小心.如果您的客户端位于代理服务器(甚至是NATting防火墙)之后,您将获得代理IP地址.
因此,您还可以查找X-Forwarded-For HTTP标头(用于标识HTTP代理后面的客户端的源IP地址的标准).在Wikipedia上查看更多信息.但要小心.如果您的客户端不在代理服务器后面,您可以获得一个空的XFF标头.因此,如果要遵循此路径,则应混合使用servlet方法和XFF标头评估.但是,无法保证代理会转发您的标头.
但请注意,任何恶意客户端都可以轻松更改或伪造源IP地址.我真的建议使用某种客户端身份验证(例如证书).Web应用程序无法准确确定客户端IP地址.
| 归档时间: |
|
| 查看次数: |
5380 次 |
| 最近记录: |