繁体   English   中英

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

[英]Can I validate the domain name of HTTP request?

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

编辑:我不能更改外部应用程序代码

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

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

编辑

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

您可以检查HTTP Referer ,但它并不可靠:它很容易伪造,有些出于隐私原因选择禁用Referer。 因此,尽管它在大多数时间都可以工作,但不要出于安全性或其他基本问题而依赖它。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM