• Tomcat 限制对 Web 应用程序的访问


    运行自己的应用程序时是否可能有太多的安全性?如今,应用程序是潜在攻击和漏洞的常见目标。因此,能够限制对应用程序的访问对您的业务至关重要。

    在本文中,我们将指导如何保护运行在 Tomcat 服务器上的应用程序。关于如何限制对您的应用程序的访问,我们推荐了两种可能的解决方案(您可以选择其中一种或同时使用):

    • 请求用户认证
    • 拒绝指定 IP 地址的访问

    使用身份验证设置,您可以指定多个用户并通过说明角色为他们提供不同级别的访问权限。而且,如果您知道来自特定 IP 地址的针对您的应用的有害操作 - 只需限制每个滥用者的访问权限。

    让我们开始并逐步分享所需的配置。

    验证

    要请求用户身份验证以访问基于Tomcat的 Web 应用程序,请执行以下操作:

    1. 导航到部署应用程序的环境。单击 Tomcat 服务器的配置按钮。

    2.打开opt/tomcat/conf/文件夹,选择tomcat-users.xml文件。

    3. 添加具有所需凭据和角色的新用户。保存更改。

    例如:

    1. <user username="test" password="test" roles="admin"/>
    2. <user username="test1" password="test1" roles="user"/>

     

    4. 转到同一文件夹中的web.xml文件并为新创建的用户指定安全约束。

    1. <security-constraint>
    2. <web-resource-collection>
    3. <url-pattern>/*url-pattern>
    4. web-resource-collection>
    5. <auth-constraint>
    6. <role-name>adminrole-name>
    7. <role-name>userrole-name>
    8. auth-constraint>
    9. security-constraint>
    10. <login-config>
    11. <auth-method>BASICauth-method>
    12. <realm-name>Test Realmrealm-name>
    13. login-config>

     

    5.保存更改并重新启动Tomcat 服务器。

    因此,在访问应用程序时,将要求用户进行身份验证。  

    客户端 IP 地址访问拒绝

    要为某些客户端IP 地址设置对您的 Web 应用程序的访问拒绝,请执行以下操作:

    1. 导航到部署了您的应用程序的环境。按T​​omcat 服务器的配置按钮。

    2. 进入/opt/tomcat/webapps/ROOT/META-INF文件夹并打开context.xml文件。

    3. 将以下字符串添加到context.xml文件中,如下所示:

    1. <Context antiJARLocking="true" path="/">
    2. <Valve className="org.apache.catalina.valves.RemoteIpValve" />
    3. <Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="{IP_address}" />
    4. Context>

    注意:如果/opt/tomcat/webapps/ROOT/META-INF文件夹中没有context.xml文件,则需要创建它,添加所有上述字符串并重新启动 Tomcat 服务器以应用更改.

    4.保存更改并重新启动Tomcat 服务器。

    随后,具有被拒绝 IP 地址的用户在尝试访问您的应用程序时将看到 HTTP 状态 403。 

    就这样!很简单,不是吗?

    只需几个简单的步骤即可保护您的应用免受滥用用户的侵害。这些只是一些基本设置,可以实施这些设置以使您的 Web 应用程序更安全

  • 相关阅读:
    LINUX随笔十 SFTP不支持 ssh-dss,ssh-rsa
    Python如何使用HanNLP工具
    Maixll-Dock 使用方法
    RabbitMQ 消息队列中间件详解
    GreatSQL vs MySQL性能测试来了,速围观~
    Docker常用命令
    Python例题练习1
    【JAVA-Day05】深入理解Java数据类型和取值范围
    以周一为每周的第一天,计算周数
    c++语言--面试题
  • 原文地址:https://blog.csdn.net/allway2/article/details/126036789