Ограничения безопасности Tomcat TRACE несовместимы

1

Я использую web.xml, чтобы попытаться отключить методы HTTP, которые мы не используем, и вернуть тело, которое не содержит никакой информации о tomcat.

Поэтому я изменил web.xml приложения, чтобы:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>restricted methods</web-resource-name>
        <url-pattern>/*</url-pattern>
        <http-method>TRACE</http-method>
        <http-method>PUT</http-method>
        <http-method>OPTIONS</http-method>
        <http-method>DELETE</http-method>
        <http-method>HEAD</http-method>
    </web-resource-collection>
    <auth-constraint />
</security-constraint>

Поэтому заблокированные методы возвращают 403 с пустым телом, для запрещенных. Но TRACE возвращает 405 с HTML-страницей Tomcat.

Я попытался перенаправить все ошибки через ErrorServlet с помощью:

<error-page>
    <location>/ErrorServlet</location>
</error-page>

Это просто гарантирует, что тело контента равно 0. Но это, похоже, не перехватывает их.

Так почему же TRACE обрабатывается по-разному?

благодаря

Теги:
tomcat
tomcat7
web.xml

1 ответ

0
Лучший ответ

Это имеет для меня смысл, потому что во всех случаях, кроме TRACE, вы отправляете запросы на веб-ресурс, идентифицированный URL-адресом, а код 403 означает, что доступ к ресурсу отклонен. Попробуйте получить доступ к одному и тому же ресурсу с помощью разрешенных методов. Наверное, это им запрещено?

TRACE, с другой стороны, не требует доступа к какому-либо ресурсу, он просто перекликается с входом клиента, поэтому 405 ("МЕТОД НЕ ДОПУСКАЕТСЯ") выглядит подходящим для этого случая.

Хорошая идея - создавать собственные страницы ошибок. Примеры, характерные для каждого кода ошибки, можно найти здесь: https://serverfault.com/questions/254102/custom-error-pages-on-apache-tomcat

  • 0
    Благодарю. Ну, мы пытаемся всегда возвращать пустые тела, так как это API для отдыха без элементов просмотра. Поэтому отправка html-кода клиенту C ++ - пустая трата времени. Мы хотим попробовать и подавить все нормальные страницы ошибок для безопасности.
  • 0
    Добавление конкретной страницы ошибок / ErrorServlet для 405 страниц, кажется, добилось цели.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню