Я бы сказал, что вашей главной заботой должно быть соблюдение передовых методов обеспечения безопасности и обновление программного обеспечения, а не то, какое именно программное обеспечение вы выберете. Почти невозможно предсказать будущие уязвимости. А программное обеспечение с большим количеством уязвимостей в прошлом не обязательно означает, что оно было менее безопасным, вероятно, оно предназначалось чаще и, следовательно, исправлялось чаще. В связи с этим вам нужно программное обеспечение, которое регулярно обновляется, и у вас есть простой способ регулярно получать эти обновления.
Я бы предложил Tomcat и следовал инструкциям Улучшение безопасности Apache Tomcat . Преимущество Tomcat в том, что он является общедоступным и открытым исходным кодом, поэтому он привлекает много внимания и быстрых исправлений. Многие атаки направлены на вещи, которые вам даже не нужны, поэтому отключите все, что можете. Настройте ваш web.xml так, чтобы он принимал только те URL-адреса, которые вы ожидаете, и выдает ошибку для всего остального.
Не похоже, что вам нужен Apache HTTPD перед веб-контейнером. Вероятно, тогда лучше уменьшить количество векторов атак и сделать так, чтобы веб-запросы направлялись прямо в веб-контейнер. Невозможно узнать, какие из HTTPD или Java будут иметь больше уязвимостей для SSL и gzip. Тем не менее, если вы используете только Java, вы, по крайней мере, не открыты для остальной части того, что может быть найдено для HTTPD, по сравнению с ограниченным набором проблем собственной реализации для Java.
Убедитесь, что Java и ваш веб-контейнер обновлены. Необходимо также изучить защиту сетей и ОС, если они этого не сделали. Вы также можете захотеть ежедневно проверять наличие веб-уязвимостей, чтобы быть в курсе новых угроз.