Deshabilitar la solicitud PUT TRACE DELETE en Apache Tomcat 6.0
-
11-07-2019 - |
Pregunta
Necesito deshabilitar PUT, DELETE & amp; RASTREAR solicitudes HTTP en mi servidor de aplicaciones, Apache Tomcat 6.0.
Todas las otras fuentes, he buscado hasta ahora, me han dirigido hacia el parámetro límite en httpd.conf , por lo tanto, lo puse de antemano que no estoy usando el servidor web Apache, Tomcat gestiona directamente las solicitudes y, por lo tanto, no hay httpd.conf en la imagen.
Sugiera cómo debería hacerlo en Tomcat?
Solución
Dentro de su WEBINF, agregue 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, puede 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>
Otros consejos
La respuesta se encuentra en la especificación del servlet. Al mirar 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 los diferentes métodos manejan diferentes tipos 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 admitir solo do y get; o
- Cree un filtro para borrar ese otro tipo de solicitudes.