hardening constraint security http tomcat application-server

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>