舞台裏

Qiita が表でこっちが裏。こっそりやっていく。

X-Frame-Options の変更を試した

デフォルトだとレスポンスヘッダーに

Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block

がついていることを確認。

この中でも特に X-Frame-Options の動きを確認。

Tomcat の webapps に test フォルダを追加、↓のような index.html ファイルを追加して http://localhost:8080/test/ にアクセス。

<html>
  <head>
  </head>
  <body>
    <iframe src="http://localhost:8080/namespace/" style="width: 500px; height: 500px;"></iframe>
  </body>
</html>

f:id:opengl-8080:20170414232339j:plain

こんなエラーが出て、 <iframe> からは参照できないようになっている。

これを、ポリシーに SAMEORIGIN を設定したらどうなるか見る。

namespace

    <sec:http>
        ...
        <sec:headers>
            <sec:frame-options policy="DENY" />
        </sec:headers>
    </sec:http>

Java Configuration

        http.authorizeRequests()
                ...
                .and()
                .headers().frameOptions().sameOrigin();

f:id:opengl-8080:20170414232709j:plain

オリジンが同じなので <iframe> 上で見れるようになった。