我可以验证HTTP请求的域名吗?

时间:2013-02-20 12:58:31

标签: java http cookies

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

修改 我无法更改外部应用程序代码

4 个答案:

答案 0 :(得分:4)

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

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

修改

我忘记了,正如 gustafc 所说的那样,HTTP引用者是一个客户端控制的值,可以被欺骗到完全不同的东西,甚至被客户端删除,所以你不能确定你的HTTP推荐人不是假值

答案 1 :(得分:3)

你可以检查HTTP referer,但它不可靠:它很容易伪造,有些人会出于隐私原因选择禁用引用。因此,虽然它可能在大多数时间都有效,但不要依赖它来保证安全性或其他重要问题。

尝试执行此操作的真正的原因是什么?

答案 2 :(得分:2)

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

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

答案 3 :(得分:0)

如果您只需要验证请求是来自特定IP(或IP范围),您可以在防火墙配置规则以支持此操作(假设代理位于防火墙内。