X-Frame-Options レスポンスヘッダ

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

X-Frame-Options を用いる

X-Frame-Options には、3 種類の値を設定できます:

DENY
サイト側の意図に関わらず、ページをフレーム内に表示することはできません。
SAMEORIGIN
自身と生成元が同じフレーム内に限り、ページを表示することができます。
ALLOW-FROM uri
指定された生成元に限り、ページをフレーム内に表示できます。

言い換えると DENY を指定した場合は、別のサイトのページをフレーム内に読み込むことだけでなく、同じサイトのページをフレーム内に読み込むことも不可能になります。一方 SAMEORIGIN を指定した場合は、フレームとフレーム内に読み込むページが同じサイトにある限り、フレーム内にページを読み込むことが可能です。

Apache の設定

Apache で X-Frame-Options ヘッダをすべてのページで送信するように設定するには、以下の記述をサイトの設定ファイルに追加してください:

Header always append X-Frame-Options SAMEORIGIN

nginx の設定

nginx で X-Frame-Options ヘッダを送信するには、以下の記述を http、server、 location のいずれかの設定に追加してください:

add_header X-Frame-Options SAMEORIGIN;

結果

現状では、X-Frame-Options ヘッダで拒否されている場合にフレーム内へページを読み込もうとすると、 Firefox は about:blank ページをフレーム内に表示します。将来は、about:blank に代わって何らかのエラーメッセージが表示される予定です。

ブラウザ実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート 4.1.249.1042 3.6.9 (1.9.2.9) 8.0 10.5 4.0
ALLOW-FROM のサポート 未サポート 18.0 (18.0) バグ 690168 8.0? ? 未サポート WebKit bug 94836
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート ? ? ? ? ? ?

関連情報

Document Tags and Contributors

Contributors to this page: ethertank, yyss
最終更新者: ethertank,