security - constraint - Deshabilitar la solicitud PUT TRACE DELETE en Apache Tomcat 6.0
hardening tomcat 8 (2)
Necesito deshabilitar las solicitudes HTTP PUT, DELETE & TRACE en mi servidor de aplicaciones, Apache Tomcat 6.0.
Todas las demás fuentes, que he buscado hasta ahora, me han dirigido hacia el parámetro de límite en httpd.conf , por lo tanto, le hubiera dicho antes que no estoy usando Apache Web Server, y Tomcat está gestionando las solicitudes directamente, y entonces no hay httpd.conf en la imagen.
Por favor, sugiero ¿cómo debo hacerlo en Tomcat?
La respuesta está en la especificación del servlet. Al consultar la API para el servlet: http://java.sun.com/products/servlet/2.5/docs/servlet-2_5-mr2/javax/servlet/http/HttpServlet.html verá que se manejan diferentes métodos tipo diferente de solicitudes HTTP. Además, hay una gran característica llamada filtros que se puede usar para envolver algún código alrededor de servlets y filtros.
Entonces las soluciones son:
- Modifique el servlet para que solo sea compatible con do y get; o
- Crea un filtro para borrar ese otro tipo de solicitudes.
Dentro de su WEBINF, agregue que puede agregar una restricción de seguridad:
<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>
Alternativamente, puedes hacer estas dos cosas:
En server.xml, edite el elemento <connector>
, agregue un atributo: allowTrace="false"
. Luego edite el 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>