2016-01-25 28 views
12

Ho aggiunto lo snippet di codice seguente nel mio tomcat web.xml per impedire il clickjacking.Opzione Xframe in tomcat 7

Nella sezione per aggiungere filtro incorporato, ho aggiunto

<filter> 
    <filter-name>httpHeaderSecurity</filter-name> 
    <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class> 
    <init-param> 
     <param-name>antiClickJackingOption</param-name> 
     <param-value>SAMEORIGIN</param-value> 
    </init-param> 
</filter> 

Per filter-mapping parte ho aggiunto.

<filter-mapping> 
    <filter-name>httpHeaderSecurity</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
</filter-mapping> 

Dopo la modifica e fare queste due modifiche, pagina di prova (pagina html in cui sto cercando di aprire la pagina di destinazione in <frame>) passa (non in grado di aprire la pagina di destinazione all'interno di cornici).
Ma la pagina di benvenuto di apache restituisce 404 con le nuove modifiche.

Per favore fatemi sapere se mi manca qualcosa.

risposta

11

Ho riscontrato anche questo problema con tomcat7 e lo stesso filtro.

La prima cosa da fare è controllare i log di tomcat in CATALINA_BASE/logs /. Individua e apri localhost.YYYY-MM-DD.log; lì dovresti trovare la causa dell'errore.

Nel mio file di log ho avuto questo errore:

SEVERE: Exception starting filter httpHeaderSecurity 
java.lang.ClassNotFoundException: org.apache.catalina.filters.HttpHeaderSecurityFilter 

Ho poi scoperto che il HttpHeaderSecurityFilter è stato di recente aggiunto Tomcat versione 7.0.63 (see here), ma ero in esecuzione versione 7.0.52 (quella che viene fornito con Ubuntu 14.04 LTS).

Ho risolto il problema installando la versione più recente di Tomcat e ora il filtro funziona come previsto.