0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

TomcatのClickjacking対策

0.背景

近年、Webサイトへのサーバー攻撃が続いて増加傾向にあり。
その一つ-「clickjacking」の対策方法について紹介させていただきます。

1.clickjackingとは

ウェブページの利用者に対し悪意をもって使用される技術の一種で、リンクやボタンなどの要素を隠蔽・ 偽装してクリックを誘い、利用者の意図しない動作をさせようとする手法である。たとえば、別の機能を実行するボタンに見せかけるなどして、埋め込まれたコードを利用者に気づかれないように実行する。

2.TomcatはX-Frame-Optionsの設定で対応する

2.1 X-Frame-Optionsとは

X-Frame-Options は HTTP のレスポンスヘッダーで、ブラウザーがページを <frame>, <iframe>, <embed>, <object> の中に表示することを許可するかどうかを示すために使用されます。 サイトはコンテンツが他のサイトに埋め込まれないよう保証することで、クリックジャッキング攻撃を防ぐために使用することができます。

2.2 X-Frame-Optionsのディレクティブ

ディレクティブ 意味
DENY 表示を拒否する
SAMEORIGIN 同じサイトのみ表示か許可
ALLOW-FROM uri 指定したURIのみ表示が許可する
※最新のブラウザにはもう動きません、使用しないでください。

2.3 X-Frame-Optionsの設定

Webサーバの設定ファイルに、X-Frame-Options に関する設定を追加します。
WebContent/WEB-INF/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>SAMEORIGIN</param-value>
        </init-param>
    </filter>
  <filter-mapping> 
    <filter-name>httpHeaderSecurity</filter-name> 
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
  </filter-mapping>
...

3.検証

  • サーバー側を再起動

  • リスポンスのヘッダを確認する

    ※Chromeの場合、「F12」を押して、DevToolsを起動します。「ネットワーク」の「ヘッダ」タブに確認できること。

image.png


0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?