Запись фильтра Tomcat HttpHeaderSecurityFilter игнорируется в conf/web.xml

Я пытаюсь включить фильтр HttpHeaderSecurityFilter в Tomcat для борьбы с атаками кликджекинга. Я хочу, чтобы это применялось ко всем приложениям, поэтому раскомментировал записи по умолчанию ‹filter› и ‹filter-mapping› для этого фильтра в собственном файле Tomcat conf/web.xml.

Насколько я могу судить, Tomcat полностью игнорирует это. Я добавил файл META-INF/context.xml в одно из своих веб-приложений следующим образом, чтобы увидеть эффективный файл web.xml, который Tomcat использует для приложения после слияния файла conf/web.xml с собственным файлом приложения.

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Context logEffectiveWebXml="true"></Context>

Результирующий вывод в catalina.log выглядит корректно (содержимое обоих файлов объединено), за исключением того, что записи фильтра из conf/web.xml отсутствуют. Я попытался ввести туда свои собственные дополнительные записи фильтра и обнаружил, что они также не отображаются в действующем файле web.xml.

Если я скопирую фильтр HttpHeaderSecurityFilter и записи сопоставления фильтров в собственный файл web.xml веб-приложения, он будет работать нормально (но это, очевидно, не то, что я хочу!)

Есть ли какой-нибудь трюк, чтобы заставить Tomcat учитывать записи фильтра в conf/web.xml?

В конечном итоге мне нужно, чтобы это работало как в Tomcat 7, так и в 8. (Я знаю, что встроенный фильтр был добавлен только в Tomcat 7.0.63.)


person John Rix    schedule 05.10.2015    source источник


Ответы (1)


В конечном итоге этот фильтр заработал у меня без особых изменений (очень неудовлетворительное разрешение, но...). Есть некоторая вероятность, что это работало с самого начала, хотя я достаточно уверен, что наблюдал успешную загрузку страниц в iframe с изначально установленным фильтром. Только сейчас не уверен.

Что, возможно, было полезным для других, так это то, что эффективный вывод журнала web.xml никогда не содержал сведений о фильтре, даже когда я мог убедиться, что фильтр работает. Похоже, это какая-то ошибка Tomcat. (Обратите внимание, я тестировал эффективное ведение журнала web.xml только на Tomcat 8.)

person John Rix    schedule 21.10.2015