Отключение запроса PUT TRACE DELETE в Apache Tomcat 6.0
-
11-07-2019 - |
Вопрос
Мне нужно отключать ВВОД, УДАЛЕНИЕ и ТРАССИРОВКУ HTTP-запросов на моем сервере приложений Apache Tomcat 6.0.
Все другие источники, которые я искал до сих пор, направили меня к параметру limit в httpd.conf, Следовательно, я бы сказал заранее, что я не использую веб-сервер Apache, а запросы обрабатываются Tomcat напрямую, и поэтому нет httpd.conf на картинке.
Пожалуйста, подскажите, как мне это сделать на Tomcat?
Решение
В вашей 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"
. Затем отредактируйте 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>
Другие советы
Ответ кроется в спецификации сервлета.При просмотре API для сервлета: http://java.sun.com/products/servlet/2.5/docs/servlet-2_5-mr2/javax/servlet/http/HttpServlet.html вы увидите, что разные методы обрабатывают разные типы HTTP-запросов.Кроме того, существует отличная функция под названием filters, которую можно использовать для обертывания некоторого кода вокруг сервлетов и фильтров.
Итак, решения таковы:
- Измените сервлет так, чтобы он поддерживал только do и get;или
- Создайте фильтр для очистки от запросов другого типа.