gpt4 book ai didi

java - 为什么从远程机器访问时 request.getRemoteAddr().equals ("127.0.0.1")

转载 作者:搜寻专家 更新时间:2023-10-31 20:22:01 25 4
gpt4 key购买 nike

我有一个在 Tomcat 中运行的 Java servlet 应用程序,出于安全原因,我只希望能够从机器本身(或者也可能是我自己的电脑)运行一个管理命令。因此,为了强制执行此操作,我检查了我收到的 HttpServletRequest 的远程地址,但它总是返回 127.0.0.1,即使请求不是来自本地主机也是如此

这是为什么,我可以修复它还是有其他方法可以仅从服务器运行我的管理命令。

最佳答案

首先检查请求是否有“X-Forwarded-For” header 。如果设置了 header ,则其中的第一个 IP 应该是您要查找的 IP。如果 header 为空,request.getRemoteAddr() 应该返回正确的 IP。

“X-Forwarded-For”的 Wiki:http://en.wikipedia.org/wiki/X-Forwarded-For

请注意,您不能 100% 确定自己获得了这样的正确 IP,因为转发实例不会强制设置“X-Forwarded-For” header 。

关于java - 为什么从远程机器访问时 request.getRemoteAddr().equals ("127.0.0.1"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12491773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com