我想在 Java Web 服务之一中支持基于 IP 的白名单。为了实现这一点,我编写了一个 servlet 过滤器,在其中验证远程机器 IP 是否属于白名单 ip。为了确定远程机器 IP,我使用以下代码:-
String ipAddress = httpServletRequest.getRemoteAddr();
我想知道是否有方法可以让攻击者在不进入远程计算机的情况下模拟远程计算机 IP。如果是,那么是否有更好的安全方法来确定远程 IP?
最佳答案
有一种方法,但是,这不是一个简单的方法,请参阅此 answer了解更多详情。
请记住,如果您将应用程序部署在代理或 CDN 后面,则 httpServletRequest.getRemoteAddr()
不会有任何好处。在这种情况下,您必须检查 X-FORWARDED-FOR
header ,然后很容易伪造它。
关于java - 在 Java Web 服务中支持基于 IP 的白名单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53587194/