阿尔达大乐章 2013-12-09 02:11 采纳率: 0%
浏览 2007

怎么使:tomcat只允许固定的域名和内网访问,禁止响应未知域名的访问

有一个公司内部管理系统,为了办公方便允许外网用域名访问,域名和服务器均已备案。

因为别人把一个未备案的域名绑定到服务器ip,导致备案被删,80端口被封。

请问怎么设置tomcat才能实现让系统只能内网和外网固定域名访问???

当前使用的是tomcat6

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-01 14:52
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要限制Tomcat仅接受特定的IP地址或域名来连接,您可以使用Apache Tomcat的安全功能。以下是如何通过修改配置文件(通常在conf/server.xml中)来实现这一目标:

    1. <Connector>标签中添加一个新的属性<ConnectorPort>, 例如<ConnectorPort>8443</ConnectorPort>,这将指定您希望监听的端口号。

    2. <Connector port="8443" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />替换为<Connector port="8443" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" acceptCount="5" maxThreads="5" />

    3. 添加新的<Host>标签,并将其值设置为您想要允许访问的主机名。例如:

    <Host name="example.com"/>
    
    1. <Connector port="8443" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" acceptCount="5" maxThreads="5" />替换为:
    <Connector port="8443" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" host="example.com" acceptCount="5" maxThreads="5" />
    
    1. 更新<Connector>标签中的<Host>属性,以包含您的特定主机名,如下所示:
    <Connector port="8443" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" host="example.com" acceptCount="5" maxThreads="5" />
    
    1. <Context>标签中,添加<Filter>元素,用于处理跨域请求。在<Filter>标签中添加以下过滤器规则:
    <Filter>
        <FilterName>CrossOriginFilter</FilterName>
        <InitParameter Name="crossorigin.allowOrigins" Value="*"/>
        <InitParameter Name="crossorigin.allowCredentials" Value="true"/>
        <InitParameter Name="crossorigin.allowedHeaders" Value="Access-Control-Allow-Origin, Access-Control-Allow-Methods, Access-Control-Allow-Headers, Origin, Accept, Content-Type, Authorization"/>
        <FilterDescription>Allow CORS requests for this application.</FilterDescription>
    </Filter>
    
    <FilterChain>
        <FilterChain name="crosstalk">
            <Filter ref="CrossOriginFilter"/>
        </FilterChain>
    </FilterChain>
    
    1. 最后,在<Server>标签中添加以下配置项:
    <Host name="localhost" description="Internal Host">
        <!-- 其他配置... -->
    </Host>
    
    <Host name="example.com" description="External Host">
        <!-- 其他配置... -->
    </Host>
    

    现在,当客户端尝试访问外部主机时,Tomcat会阻止访问,并显示错误消息“Invalid request”. 对于内网访问,Tomcat会正常工作并允许请求。

    请注意,此方法可能不会完全防止所有未经授权的请求,但应能有效减少未经授权的请求。对于更严格的安全控制,请考虑使用其他技术,如SSL/TLS加密或其他认证机制。

    评论

报告相同问题?