GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann der Zugriff auf eine Datei blockiert werden, die von Tomcat bereitgestellt wird?

Lösung 1:

Der Dateizugriff von Tomcat wird durch den Abschnitt für Sicherheitsbeschränkungen von WEB-INF/web.xml gesteuert.

Sie können conf blockieren so:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>HTTP-Protected-Resource-1</web-resource-name>
        <description>Description here</description>
        <url-pattern>/conf/*</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>NOSOUPFORYOU</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>DEFAULT</auth-method>
    <realm-name>NOACCESSFORANYONE</realm-name>
</login-config>
<security-role>
    <role-name>NOSOUPFORYOU</role-name>
</security-role>

Wenn Sie Apache verwenden, um statische Inhalte bereitzustellen, funktioniert dies nicht, da Apache die conf-Dateien bereitstellt, bevor Tomcat die URL erhält. In diesen Fällen müssten Sie dies über die HTTP-Konfigurationsdateien von Apache lösen.

Lösung 2:

Hallo an alle SysAdmin- und IT-Mitarbeiter in diesem Beitrag. Vielen Dank für Ihre Antworten. Viele der Antworten auf meine Fragen waren akzeptabel, aber diese war am besten für unsere Produktionsumgebung geeignet.

OK. Um ein Verzeichnis oder eine Datei innerhalb eines virtuellen Hosts in der server.xml zu blockieren, müssen Sie nur den folgenden Code zur server.xml im tomcat/conf-Verzeichnis hinzufügen.

Vorher:

  <Host name="www.customer.com" appBase="/usr/share/app4_0b/tomcat/webapps/" autoDeploy="false">
    <Context path="" docBase="./customer" />

    <Valapp className="org.apache.catalina.valapps.FastCommonAccessLogValapp"
           directory="weblogs/customer"
           prefix="www_customer_com_"
           suffix=".txt"
           pattern="combined"
           resolappHosts="false" />
  </Host>

Nachher:

  <Host name="www.customer.com" appBase="/usr/share/app4_0b/tomcat/webapps/" autoDeploy="false">
    <Context path="" docBase="./customer" />

    <Context path="/app/xv/~customer/etc" docBase="" >
      <Valapp className="org.apache.catalina.valapps.RemoteAddrValapp" deny="*" />
    </Context>
    <Context path="/etc" docBase="" >
      <Valapp className="org.apache.catalina.valapps.RemoteAddrValapp" deny="*" />
    </Context>

    <Valapp className="org.apache.catalina.valapps.FastCommonAccessLogValapp"
           directory="weblogs/customer"
           prefix="www_customer_com_"
           suffix=".txt"
           pattern="combined"
           resolappHosts="false" />
  </Host>

Die Antwort auf die Frage lautet also, fügen Sie die folgenden Zeilen hinzu:

    <Context path="/app/xv/~customer/etc" docBase="" >
      <Valapp className="org.apache.catalina.valapps.RemoteAddrValapp" deny="*" />
    </Context>
    <Context path="/etc" docBase="" >
      <Valapp className="org.apache.catalina.valapps.RemoteAddrValapp" deny="*" />
    </Context>

Lösung 3:

Warum speichern Sie es nicht außerhalb Ihrer Webverzeichnisstruktur? Wir legen niemals etwas unter /var/www/html/ ab, von dem wir nicht möchten, dass ein Benutzer es entdeckt.

Lösung 4:

Ein Rat. Nachdem Sie die Berechtigungen behoben haben. Ändern Sie alle Passwörter und stellen Sie sicher, dass es keinen Google-Cache davon gibt.

Lösung 5:

Normalerweise werden Konfigurationsinformationen (wie Datenbankverbindungsinformationen usw.) in Dateien im WEB-INF-Ordner der WAR-Datei gespeichert, die Tomcat bereitgestellt wird. Dateien unter WEB-INF sind für Clients nicht zugänglich.


Linux
  1. Blockieren des Zugriffs über eine .htaccess-Datei

  2. So hindern Sie Nicht-Root-Benutzer daran, einen Crontab-Eintrag in Linux zu erstellen

  3. So prüfen Sie den Dateizugriff unter Linux

  4. Wie unterscheidet sich install -c von cp

  5. Wie unterscheidet sich cp -f von cp --remove-destination?

So blockieren Sie den Zugriff auf wp-admin und wp-login in Nginx/Apache

So entfernen Sie (^M) Zeichen aus einer Datei in Linux

Wie greife ich von Ubuntu auf Windows-Dateien zu?

So installieren Sie Apache Tomcat 9 auf CentOS 7

So installieren Sie Apache Tomcat auf Jelastic Cloud

So installieren Sie Apache Tomcat unter Ubuntu 18.04