Disabilitazione della richiesta PUT TRACE DELETE in Apache Tomcat 6.0
-
11-07-2019 - |
Domanda
Devo disabilitare l'amplificatore PUT, DELETE &; TRACE richieste HTTP sul mio Application Server, Apache Tomcat 6.0.
Tutte le altre fonti, che ho cercato fino ad ora, mi hanno indirizzato verso il parametro limite in httpd.conf , quindi vorrei mettere in evidenza che non sto usando Apache Web Server, e le richieste vengono gestite direttamente da Tomcat, quindi non c'è httpd.conf in figura.
Per favore, suggerisci come devo fare su Tomcat?
Soluzione
All'interno di WEBINF, aggiungi puoi aggiungere un vincolo di sicurezza:
<security-constraint>
<web-resource-collection>
<web-resource-name>Forbidden</web-resource-name>
<url-pattern>/blah/*</url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>empty_role</role-name>
</auth-constraint>
</security-constraint>
In alternativa, puoi fare queste due cose:
In server.xml, modifica l'elemento <connector>
, aggiungi un attributo: allowTrace="false"
. Quindi modificare il DefaultServlet: $ CATALINA_HOME / conf / web.xml
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>
org.apache.catalina.servlets.DefaultServlet
</servlet-class>
<!-- blah blah blah -->
<init-param>
<param-name>readonly</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
Altri suggerimenti
La risposta sta nelle specifiche del servlet. Osservando l'API per il servlet: http://java.sun.com/products/servlet/2.5/docs/servlet-2_5-mr2/javax/servlet/http/HttpServlet.html vedrai che diversi metodi gestiscono diverso tipo di richieste HTTP. Inoltre, esiste una grande funzionalità chiamata filtri che può essere utilizzata per avvolgere del codice attorno a servlet e filtri.
Quindi le soluzioni sono:
- Modifica il servlet per supportare solo do and get; o
- Crea un filtro per cancellare quell'altro tipo di richieste.