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

強化されたセキュリティは、ユーザーが X-Frame-Options に対応したブラウザーを使用して文書にアクセスした場合のみ提供されます。

ヘッダー種別 応答ヘッダー
禁止ヘッダー名 いいえ

構文

X-Frame-Options には三つの有効なディレクティブがあります。

X-Frame-Options: DENY
X-Frame-Options: SAMEORIGIN
X-Frame-Options: ALLOW-FROM https://example.com/

ディレクティブ

DENY を指定した場合は、他のサイトからフレームにページを読み込もうとした時に失敗するだけでなく、同じサイトから読み込もうとした時にも失敗します。一方、 SAMEORIGIN を指定した場合は、フレームの中のページを含むサイトが、ページを提供しているサイトと同じである限り、フレーム内でページを利用することができます。

DENY
サイト側の意図に関わらず、ページをフレーム内に表示することはできません。
SAMEORIGIN
ページは同じオリジンのページに含まれるページのフレーム内でのみ表示されます。仕様書ではこのオプションを最上位、親、チェーン全体のどれに適用するかをブラウザーベンダーに任せていますが、すべての祖先も同じ祖先でない限り、利用価値がないと議論されています。 (バグ 725490 を参照)。対応の詳細はブラウザーの対応もご覧ください。
ALLOW-FROM uri
ページは指定されたオリジンのフレーム内でのみ表示されます。なお、 Firefox では現在も SAMEORIGIN と同じ問題で悩んでいます。 — 同じオリジンであるかどうかを確認するために、フレームの祖先をチェックしません。

メモ: meta タグに設定することは意味がありません。例えば、 <meta http-equiv="X-Frame-Options" content="deny"> は効果がありません。使用しないでください。以下の例にあるように、 HTTP ヘッダーを通じて設定された場合のみ、 X-Frame-Options は動作します。

Apache の設定

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

Header always set X-Frame-Options SAMEORIGIN

Apache で X-Frame-Options を deny に設定するように設定するには、サイトの設定に以下の行を追加してください。

Header set X-Frame-Options DENY

Apache で X-Frame-OptionsALLOW-FROM で特定のホストに設定する場合、サイトの設定に以下の行を追加してください。

Header set X-Frame-Options "ALLOW-FROM https://example.com/"

nginx の設定

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

add_header X-Frame-Options SAMEORIGIN;

IIS の設定

IIS で X-Frame-Options ヘッダーを送信するように設定するには、サイトの Web.config ファイルにこれを追加してください。

<system.webServer>
  ...

  <httpProtocol>
    <customHeaders>
      <add name="X-Frame-Options" value="SAMEORIGIN" />
    </customHeaders>
  </httpProtocol>

  ...
</system.webServer>

HAProxy の設定

HAProxy で X-Frame-Options ヘッダーを送信するように設定するには、これを front-end, listen, backend の設定の何れかに追加してください。

rspadd X-Frame-Options:\ SAMEORIGIN

仕様書

仕様書 題名
RFC 7034 HTTP Header Field X-Frame-Options

ブラウザーの対応

機能ChromeEdgeFirefoxInternet ExplorerOperaSafari
基本対応4 あり3.6.9810.54
ALLOW-FROM なし ?188 ? あり
SAMEORIGIN あり1 ? あり28 あり3 あり
機能Android webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
基本対応 あり あり あり あり あり あり あり
ALLOW-FROM ? ? ? ? ? ? なし
SAMEORIGIN あり1 あり1 ? ? あり3 ? あり

1. Starting in Chrome 61, this applies to all of a frame's ancestors.

2. Starting in Firefox 59, this applies to all of a frame's ancestors.

3. Starting in Opera 48, this applies to all of a frame's ancestors.

関連情報

ドキュメントのタグと貢献者

 このページの貢献者: mfuji09, hamasaki, ethertank, yyss
 最終更新者: mfuji09,