1

我有一个 Java Web 应用程序,它有一个入口点 URL,并且一个外部 Web 应用程序重定向到该 URL。我可以在服务器端使用 cookie 或其他方式检查请求是否来自特定域?

编辑: 我无法更改外部应用程序代码

4

4 回答 4

4

我认为您想知道 HTTP Referer(“调用”您的页面的 URL):

String referrer = request.getHeader("referer");

编辑

我忘记了,正如gustafc所说,HTTP 引荐来源网址是客户端控制的值,可以欺骗完全不同的东西,甚至被客户端删除,因此您无法确定您的 HTTP 引荐来源网址不是假值

于 2013-02-20T13:01:17.033 回答
3

您可以检查HTTP referer,但它不可靠:它很容易伪造,并且有些人出于隐私原因选择禁用 referer。因此,虽然它可能在大多数情况下都有效,但不要依赖它来解决安全或其他基本问题。

尝试这样做的真正原因是什么?

于 2013-02-20T13:01:47.123 回答
2

是的。您可以从请求对象中的方法getRemoteHost()或方法获取请求的来源。getRemoteAddr()

http://docs.oracle.com/javaee/5/api/javax/servlet/ServletRequest.html#getRemoteHost()

于 2013-02-20T13:01:29.217 回答
0

如果您只需要验证请求是否来自特定 IP(或 IP 范围),您可以在防火墙上配置一条规则来支持这一点(假设代理在防火墙内。

于 2013-02-20T14:05:59.350 回答