web-dev-qa-db-ja.com

angularJSのX-Frame-Optionsを応答ヘッダーとして設定するにはどうすればよいですか?

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>

それでも、ヘッダーが追加されているのがわかりません。誰かが解決策を理解するのを手伝ってくれませんか?

8
pix1289

私は解決策を見つけました。 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サーバーのドキュメントで確認できます。

15
pix1289