Отключение запроса PUT TRACE DELETE в Apache Tomcat 6.0 - PullRequest
10 голосов
/ 26 ноября 2008

Мне нужно отключить HTTP-запросы PUT, DELETE & TRACE на моем сервере приложений Apache Tomcat 6.0.

Все другие источники, которые я искал до сих пор, направили меня к параметру limit в httpd.conf , поэтому я бы сказал, что не использую Apache Web Server запросы обрабатываются Tomcat напрямую, поэтому на картинке нет httpd.conf .

Подскажите, пожалуйста, как мне это сделать на Tomcat?

Ответы [ 2 ]

19 голосов
/ 26 ноября 2008

Внутри вашего WEBINF вы можете добавить ограничение безопасности:

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

Кроме того, вы можете сделать эти две вещи:

В файле server.xml отредактируйте элемент <connector>, добавьте атрибут: allowTrace="false". Затем отредактируйте сервлет по умолчанию: $ 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>
0 голосов
/ 26 ноября 2008

Ответ лежит в спецификации сервлета. Посмотрев API для сервлета: http://java.sun.com/products/servlet/2.5/docs/servlet-2_5-mr2/javax/servlet/http/HttpServlet.html, вы увидите, что разные методы обрабатывают разные типы HTTP-запросов. Кроме того, есть замечательная функция, называемая фильтрами, которая может использоваться для обертывания некоторого кода вокруг сервлетов и фильтров.

Итак, решения:

  • Модифицируйте сервлет так, чтобы только поддержка делала и получала; или
  • Создайте фильтр, чтобы очистить эти другие виды запросов.
...