Wir haben einige Tomcat-Server und haben gerade festgestellt, dass einige Dateien, die nicht öffentlich zugänglich sein sollen, Zugriff auf diese Dateien haben. Veranschaulichen:
Angenommen, wir haben einen Ordner / var / www / html /, den wir über tomcat veröffentlichen, aber wir möchten /var/www/html/conf/dbinfo.txt nicht verfügbar machen. In diesem Moment können die Leute auf www.thissite.com/conf/dbinfo.txt gehen und sie können Dinge sehen. Ich möchte es blockieren können, zeigt es also nicht an, aber es ermöglicht es, dass es von Tomcat selbst gelesen wird.
Jede Hilfe wird geschätzt.
Antworten:
Der Dateizugriff von Tomcat wird durch den Abschnitt mit den Sicherheitsbeschränkungen in WEB-INF / web.xml gesteuert.
Sie können folgendermaßen blockieren
conf
:Wenn Sie Apache verwenden, um statischen Inhalt 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.
quelle
Warum speichern Sie es nicht außerhalb Ihrer Webverzeichnisstruktur? Wir haben niemals etwas unter / var / www / html / abgelegt, das ein Benutzer nicht entdecken soll.
quelle
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.
In Ordnung. Um ein Verzeichnis oder eine Datei innerhalb eines virtuellen Hosts in server.xml zu blockieren, müssen Sie nur den folgenden Code zur server.xml im Verzeichnis tomcat / conf hinzufügen.
Vor:
Nach:
Die Antwort auf die Frage lautet also: Fügen Sie die folgenden Zeilen hinzu:
quelle
Ein Rat. Nachdem Sie die Berechtigungen behoben haben. Ändern Sie alle Passwörter und stellen Sie sicher, dass kein Google-Cache vorhanden ist.
quelle
Normalerweise werden Konfigurationsinformationen (wie Datenbankverbindungsinformationen, ...) in Dateien im Ordner WEB-INF der auf Tomcat bereitgestellten WAR-Datei gespeichert. Dateien unter WEB-INF sind für Clients nicht zugänglich.
quelle
Ich habe das gleiche Problem, aber ich kann nicht sehen, wie die akzeptierte Antwort wirklich funktionieren kann. Das hier aufgerufene Ventil gilt für die GESAMTE Webanwendung. Nicht Teil davon. Ich gehe also davon aus, dass in diesem Fall, wenn der Kontext nicht als eine Webanwendung dargestellt wird, die Anweisung einfach ignoriert und einige Kommentare in die Protokolldatei geworfen werden.
quelle
Sie können das Verzeichnis für den öffentlichen Zugriff über die Datei server.xml blockieren
Fügen Sie diese Zeilen zu dieser Datei server.xml hinzu
Greifen Sie dann auf das http: // localhost: 8080 / examples zu, dann wird es als 404-Seitenfehler angezeigt, dh) bedeutet blockiert
quelle