【问题标题】:Tomcat Restrict Access to specific domain name onlyTomcat 仅限制对特定域名的访问
【发布时间】:2014-08-13 01:01:52
【问题描述】:

运行 tomcat 的服务器有两个域名(例如,example1.com 和 example2.com)。我想限制对tomcat的访问,这样只能通过example2.com访问。当任何人尝试使用 example1.com 或 IP 地址时,tomcat 应该会出现一些错误,例如 Page not found..

由于我无法访问 DNS 条目,我是否可以在 tomcat 中建立此限制??

【问题讨论】:

    标签: tomcat solaris-10


    【解决方案1】:

    您将无法完全阻止它:TCP 连接是由地址的 IP 完成的,无法知道查询了哪个域名以找到该 IP。没有改变DNS,没有绝对的解决方案(即使那样,你也无法阻止IP访问)

    一种方法是阻止使用不同于exemple2.org 的Host: 的任何请求。例如,使用自定义过滤器:

    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        if (!request.getServerName().equals("exemple2.com")) {
            ((HttpServletResponse) response).sendError(403);
        } else {
            chain.doFilter(request, response);
        }
    
    }
    

    或者你可以在你的 tomcat 中定义 2/3 主机。一个主机作为 exemple2.com 与您的应用程序一起使用,默认主机只发送错误页面。

    正如我所说,这远非完美,因为它可以通过更改 Host 标头轻松绕过。

    【讨论】:

    • 谢谢。我也想过这个。但是通过接受请求,客户端已经成功建立了 HTTPS 连接,并且会知道 example1 和 example2 是同一台机器。让我尝试一些解决方案。
    猜你喜欢
    • 2011-06-18
    • 1970-01-01
    • 2021-11-12
    • 2011-09-11
    • 2013-10-27
    • 1970-01-01
    • 2011-12-31
    • 1970-01-01
    • 2018-10-11
    相关资源
    最近更新 更多