gpt4 book ai didi

java - 检测Java/JSP中的代理

转载 作者:行者123 更新时间:2023-11-30 04:54:38 24 4
gpt4 key购买 nike

我正在使用Java进行项目,其中IP地址将是客户端/用户的身份。所以我面临一个问题:用户可以欺骗他们的主机身份,这可能会导致用户的虚假身份。那么,有人知道如何检测主机是否使用代理吗?

InetAddress thisIp = InetAddress.getLocalHost();

我使用上面的代码来检测主机IP地址。

最佳答案

您无法 100% 可靠地检查这一点,但为了覆盖大多数代理,您可以检查 X-Forwarded-For 请求 header 是否存在。

if (request.getHeader("X-Forwarded-For") != null) {
// Client is likely using a proxy.
}

对此没有标准。每个代理可能有自己特定的一组附加/自定义 header 。您可以记录检索到的请求 header 并检查某些代理设置了哪些 header ,然后相应地更改代码。同样,您无法可靠地检查这一点。有些代理甚至可能根本没有额外的 header 。您需要维护“众所周知”代理的 IP 地址列表,以便您可以根据它检查 getRemoteAddr()

<小时/>

与具体问题无关,因为您用 标记了此问题,我只想补充一点,在 JSP 中编写 Java 代码是一种糟糕的做法。您通常会在普通的 Java 类中执行此操作,例如 servletfilter .

关于java - 检测Java/JSP中的代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8938927/

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