我有一个Java Web应用程序,只有一个入口点URL,外部Web应用程序重定向到该URL。我可以在服务器端检查请求是来自特定域使用cookie还是其他什么?
修改 我无法更改外部应用程序代码
答案 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范围),您可以在防火墙配置规则以支持此操作(假设代理位于防火墙内。