GNU/Linux >> Linux Esercitazione >  >> Linux

Come bloccare l'accesso a un file dall'essere servito da Tomcat?

Soluzione 1:

L'accesso ai file di Tomcat è controllato dalla sezione dei vincoli di sicurezza di WEB-INF/web.xml.

Puoi bloccare conf in questo modo:

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

Se stai usando apache per servire contenuti statici, questo non funzionerà poiché apache servirà i file conf prima che Tomcat ottenga l'URL. In questi casi, dovresti risolvere questo problema tramite i file di configurazione http di Apache.

Soluzione 2:

Ciao a tutti i SysAdmin e IT Workers in questo post. Grazie per le tue risposte. Molte delle risposte alle mie domande erano accettabili, ma questa era la più adatta al nostro ambiente di produzione.

Ok. Per bloccare una directory o un file all'interno di un host virtuale in server.xml devi solo aggiungere il seguente codice al server.xml nella directory tomcat/conf.

Prima:

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

Dopo:

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

Quindi la risposta alla domanda è aggiungere le seguenti righe:

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

Soluzione 3:

Perché non memorizzarlo al di fuori della struttura della tua directory web? Non mettiamo mai nulla sotto /var/www/html/ che non vorremmo che un utente scoprisse.

Soluzione 4:

Parola di consiglio. Dopo aver corretto i permessi. Cambia tutte le password e assicurati che non ci sia una cache di Google.

Soluzione 5:

Normalmente le informazioni di configurazione (come le informazioni di connessione al database, ...) sono memorizzate nei file nella cartella WEB-INF del file WAR distribuito a Tomcat. I file in WEB-INF non sono accessibili ai client.


Linux
  1. Blocco dell'accesso tramite un file .htaccess

  2. Come catturare un file da Awk?

  3. Come controllare l'accesso ai file su Linux

  4. Come creare un file in Linux dalla finestra del terminale?

  5. In che modo install -c è diverso da cp

Come bloccare l'accesso a wp-admin e wp-login in Nginx/Apache

Come rimuovere (^M) caratteri da un file in Linux

Come accedere ai file di Windows da Ubuntu?

Come installare Apache Tomcat 9 su CentOS 7

Come installare Apache Tomcat su Jelastic Cloud

Come installare Apache Tomcat su Ubuntu 18.04