Question

J'ai besoin de désactiver PUT, DELETE & amp; Les requêtes HTTP TRACE sur mon serveur d'applications, Apache Tomcat 6.0.

Toutes les autres sources, que j'ai recherchées jusqu'à présent, m'ont orienté vers le paramètre limit dans httpd.conf , c'est pourquoi je dirais d'avance que je n'utilise pas Apache Web Server, et les demandes sont directement traitées par Tomcat, il n'y a donc pas httpd.conf dans l'image.

Suggérez-moi comment je devrais le faire sur Tomcat?

Était-ce utile?

La solution

Dans votre WEBINF, vous pouvez ajouter une contrainte de sécurité:

<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>

Vous pouvez également effectuer ces deux opérations:

Dans server.xml, modifiez l'élément <connector>, ajoutez un attribut: allowTrace="false". Ensuite, éditez le 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>

Autres conseils

La réponse réside dans la spécification de servlet. En examinant l'API du servlet: http://java.sun.com/products/servlet/2.5/docs/servlet-2_5-mr2/javax/servlet/http/HttpServlet.html , vous verrez que différentes méthodes gèrent type différent de requêtes HTTP. En outre, il existe une fonctionnalité intéressante appelée filtres qui peut être utilisée pour envelopper du code autour des servlets et des filtres.

Les solutions sont donc les suivantes:

  • Modifiez le servlet pour ne prendre en charge que do et get; ou
  • Créez un filtre pour supprimer ces autres types de demandes.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top