GNU/Linux >> Tutoriels Linux >  >> Linux

Comment empêcher l'accès à un fichier d'être servi par Tomcat ?

Solution 1 :

L'accès aux fichiers de Tomcat est contrôlé par la section des contraintes de sécurité de WEB-INF/web.xml.

Vous pouvez bloquer conf de cette façon :

<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>

Si vous utilisez apache pour servir du contenu statique, cela ne fonctionnera pas car apache servira les fichiers de configuration avant que tomcat n'obtienne l'URL. Dans ces cas, vous devrez résoudre ce problème via les fichiers de configuration http d'Apache.

Solution 2 :

Bonjour à tous les administrateurs système et informaticiens de ce poste. Merci pour vos réponses. La plupart des réponses à mes questions étaient acceptables, mais celle-ci était la mieux adaptée à notre environnement de production.

D'accord. Pour bloquer un répertoire ou un fichier au sein d'un hôte virtuel dans server.xml, il vous suffit d'ajouter le code suivant au server.xml dans le répertoire tomcat/conf.

Avant :

  <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>

Après :

  <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>

La réponse à la question est donc d'ajouter les lignes suivantes :

    <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>

Solution 3 :

Pourquoi ne pas le stocker en dehors de votre structure de répertoires Web ? Nous ne mettons jamais rien sous /var/www/html/ que nous ne voudrions pas qu'un utilisateur découvre.

Solution 4 :

Un conseil. Après avoir corrigé les autorisations. Changez tous les mots de passe et assurez-vous qu'il n'y a pas de cache Google.

Solution 5 :

Normalement, les informations de configuration (telles que les informations de connexion à la base de données, ...) sont stockées dans des fichiers sous le dossier WEB-INF du fichier WAR déployé sur Tomcat. Les fichiers sous WEB-INF ne sont pas accessibles aux clients.


Linux
  1. Bloquer l'accès via un fichier .htaccess

  2. Comment auditer l'accès aux fichiers sous Linux

  3. Mesurer le trafic à partir du journal d'accès apache

  4. Comment créer un fichier sous Linux à partir de la fenêtre du terminal ?

  5. En quoi install -c est différent de cp

Comment bloquer l'accès à wp-admin et wp-login dans Nginx/Apache

Comment supprimer les caractères (^M) d'un fichier sous Linux

Comment accéder aux fichiers Windows à partir d'Ubuntu ?

Comment installer Apache Tomcat 9 sur CentOS 7

Comment installer Apache Tomcat sur Jelastic Cloud

Comment installer Apache Tomcat sur Ubuntu 18.04