APIからの応答でX-Frame-Optionsヘッダーを受け取りますが、クリックジャッキング攻撃を防ぐためにUIコードに追加する必要があることを理解しています。 (angularjsで記述された)UIコードはTomcat(バージョン7.0.72)サーバーにデプロイされます。アプリケーションのweb.xmlに以下のフィルターを追加してみました。
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.Apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>antiClickJackingEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>antiClickJackingOption</param-name>
<param-value>DENY</param-value>
</init-param>
</filter>
それでも、ヘッダーが追加されているのがわかりません。誰かが解決策を理解するのを手伝ってくれませんか?
私は解決策を見つけました。 X-Frame-Options応答ヘッダーは、Tomcatサーバーのweb.xmlを介して追加する必要があります。フィルターマッピングがweb.xmlにないため、ヘッダーが追加されませんでした。この問題に直面する可能性のある他の人のために、私はここにweb.xmlからの行を投稿しています:
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.Apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>antiClickJackingEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>antiClickJackingOption</param-name>
<param-value>DENY</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>httpHeaderSecurity</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
これにより、次のヘッダーが追加されます。•X-Frame-Options•X-Content-Type-Options•X-XSS-Protection
このヘッダーのそれぞれに値を指定しない場合、それぞれのデフォルト値が設定されます。デフォルト値はTomcatサーバーのドキュメントで確認できます。