web-dev-qa-db-ja.com

Tomcat 7のXframeオプション

クリックジャックを防ぐために、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に新しい変更が加えられています。

何か足りない場合は教えてください。

14
Rndp13

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バージョンをインストールすることで問題を解決しましたが、フィルターは期待どおりに機能するようになりました。

15
Max 23