クリックジャッキング攻撃に対抗するために、Tomcat で HttpHeaderSecurityFilter フィルターを有効にしようとしています。これをすべてのアプリケーションに適用したいので、Tomcat 自身の conf/web.xml ファイルで、このフィルターのデフォルトの <filter> および <filter-mapping> エントリーのコメントを外しました。
私が知る限り、これはTomcatによって完全に無視されているようです。conf/web.xml ファイルをアプリ自体のファイルとマージした後、Tomcat がアプリに使用する効果的な web.xml ファイルを確認するために、次のように META-INF/context.xml ファイルを Web アプリの 1 つに追加しました。
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Context logEffectiveWebXml="true"></Context>
結果の catalina.log の出力は、conf/web.xml からのフィルター エントリが欠落していることを除いて、有効に見えます (両方のファイルのコンテンツがマージされます)。そこに独自の追加フィルター エントリを導入しようとしましたが、それらも有効な web.xml に表示されないことがわかりました。
HttpHeaderSecurityFilter フィルターとフィルター マッピング エントリを Web アプリ自体の web.xml ファイルにコピーすると、問題なく動作します (しかし、これは明らかに私が望んでいるものではありません!)
Tomcat が conf/web.xml のフィルター エントリを尊重するようにするためのトリックはありますか?
最終的には、Tomcat 7 と 8 の両方でこれが機能する必要があります (組み込みフィルターは Tomcat 7.0.63 でのみ追加されたことを認識しています)。