说我有2个不同的网站。
我需要确保sampledomain1.com
仅向sampledomain2.com
提供信息,而不是其他任何人。为此sampledomain1.com
需要找出请求服务器的主机名。这意味着sampledomain1.com
应该读取该请求来自sampledomain2.com
我们怎样才能找到答案?
答案 0 :(得分:1)
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if(req.getRemoteHost().endsWith("sampledomain1.com") || req.getRemoteHost().endsWith("sampledomain2.com")) {
// ... code goes here.
}
}
您可以使用HttpServletRequest.getRemoteAddr()
或HttpServletRequest.getRemoteHost()
来检索来电者详细信息。也许您应该使用防火墙或阀门(http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Remote_Host_Filter)(或应用程序服务器前面的Apache HTTPd服务器)来执行过滤,但这取决于您的环境。
答案 1 :(得分:0)
试试这个:
$allowed_hosts = array('foo.example.com', 'bar.example.com');
if (!isset($_SERVER['HTTP_HOST']) || !in_array($_SERVER['HTTP_HOST'], $allowed_hosts)) {
header($_SERVER['SERVER_PROTOCOL'].' 400 Bad Request');
exit;