クリックジャックを防ぐために、Tomcat web.xmlに以下のコードスニペットを追加しました。
組み込みフィルターを追加するセクションで、私は追加しました
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.Apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<init-param>
<param-name>antiClickJackingOption</param-name>
<param-value>SAMEORIGIN</param-value>
</init-param>
</filter>
フィルターマッピングパーツについては追加しました。
<filter-mapping>
<filter-name>httpHeaderSecurity</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
これらの2つの変更を編集して行った後、テストページ(htmlページでターゲットページを開こうとしている<frame>
)パス(フレーム内でターゲットページを開くことができません)。
しかし、Apacheのウェルカムページでは、404に新しい変更が加えられています。
何か足りない場合は教えてください。
Tomcat7とまったく同じフィルターでもこの問題が発生しました。
最初に行うべきことは、CATALINA_BASE/logs /の下のTomcatログを確認することです。 localhost.YYYY-MM-DD.logを見つけて開きます。そこでエラーの原因を見つける必要があります。
ログファイルに次のエラーがありました。
SEVERE: Exception starting filter httpHeaderSecurity
Java.lang.ClassNotFoundException: org.Apache.catalina.filters.HttpHeaderSecurityFilter
その後、HttpHeaderSecurityFilterがTomcatバージョン7.0.63に新しく追加されたことがわかりました( こちらを参照 )が、バージョン7.0.52(Ubuntu 14.04 LTSに付属しているもの)を実行していました。
最新のTomcatバージョンをインストールすることで問題を解決しましたが、フィルターは期待どおりに機能するようになりました。