Tomcat Отказ в обслуживании из-за больших пакетов

Я задал этот вопрос о его безопасности, но мне показалось, что этот вопрос лучше разместить здесь.

Недавно я обнаружил, что отправка больших (>5 МБ) запросов на сервер Tomcat приводит к 100% загрузке ЦП на сервере. Самое простое решение, которое пришло в голову, - это использование maxPostSize на разъеме. Однако это не помогло, так как запрос, который мне нужно отправить, не является "form-url-закодированным". Я прочитал вокруг, чтобы найти, что maxPostSize применим только к этому заголовку.

Итак, как можно остановить такие большие пакеты прямо на сервере, прежде чем передать их приложению?

Другими словами: как предотвратить DoS на сервере Tomcat от злоумышленника, который отправляет несколько больших запросов данных

2 ответа

Решение

ЕСЛИ ответ CédricC не поможет - используйте httpd с mod_security в качестве внешнего интерфейса - там вы можете указать ограничения для всего...

Какую версию tomcat вы используете? и есть ли данные запроса в параметре запроса?

Если это не один из последних (>6.0.35 или>7.0.23), то это может быть из-за уязвимости коллизии хеша от JVM (см. CVE-2012-0022).

Это исправлено в 6.0.34 и 7.0.23 путем добавления maxParameterCount к разъему (по умолчанию 10000).

http://tomcat.apache.org/tomcat-7.0-doc/config/http.html

Другие вопросы по тегам