CSP: frame-ancestors

HTTP の Content-Security-Policy (CSP) である frame-ancestors ディレクティブは <frame><iframe><object><embed><applet> などを使ってページを埋め込むことのできる親を指定します。

このディレクティブを 'none' にすることは、 X-Frame-Options: deny (これは古いブラウザーも同様に対応しています) を設定するのに似ています。

CSP バージョン 2
ディレクティブ種別 ナビゲーションディレクティブ
default-src による代替 なし。設定しない場合はすべてを許可します。
このディレクティブは <meta> 要素では対応していません。

構文

frame-ancestors ポリシーをこのように一つ以上セットできます。

Content-Security-Policy: frame-ancestors <source>;
Content-Security-Policy: frame-ancestors <source> <source>;

ソース

<source> は以下のうちのいずれかです。

frame-ancestors ディレクティブの構文は他のソースリスト (default-src など) のものと同様ですが、 'unsafe-eval''unsafe-inline' などは許可されていません。また、これは default-src の設定にフォールバックすることもありません。下記に示されたソースのみが許可されます。

<host-source>
スペースで区切られた、URL schemeやポート番号をふくむことができるIPアドレスや名前によるインターネットホスト名です。サイトのアドレスの前にワイルドカード (アスタリスク、 '*')を含めることができ、さらにすべてのポートがソースとして有効であることを示すためにポート番号としてワイルドカード ('*') を使うこともできます。ホスト名をシングルクオートで囲うことはできません。
例:
  • http://*.example.com: http: のスキームを使用した、example.com のすべてのサブドメインからのすべての読み込みの試行に一致します。
  • mail.example.com:443: mail.example.com の 443番ポートへのアクセスの試行に一致します。
  • https://store.example.com: https: を使用した store.example.com へのアクセスの試行に一致します。

host-source にURLスキームが指定されておらず、 iframe が https URLから読み込まれている場合、 iframe を読み込んでいるページの URL も https でなければなりません。 W3C 仕様書の matching source expressions によるものです。

<scheme-source>
http: または https: のようなスキームです。コロンは必要です。以下の他の値とは異なり、単一引用符は使用しないでください。data スキームも指定することができます (非推奨)。
  • data: コンテンツのソースとして data: の URI を使うことができるようにします。これは安全ではありません。攻撃者は任意の data: URI を挿入することもできます。使用は控え、スクリプトには絶対に使用しないでください。
  • mediastream: mediastream: の URI をコンテンツのソースとして使用することができるようにします。
  • blob: blob: の URI をコンテンツのソースとして使用することができるようにします。
  • filesystem: filesystem: の URI をコンテンツのソースとして使用することができるようにします。
'self'
保護された文書が提供されたオリジンを、同じ URL スキームおよびポート番号で参照します。単一引用符が必要です。ブラウザーによっては source ディレクティブから blob および filesystem を独自に除外していることがあります。これらのコンテンツ種別を許可する必要があるサイトは、Data 属性を使用して指定することができます。
'none'
空のセットを参照します。つまり、一致する URL はありません。単一引用符が必要です。

Content-Security-Policy: frame-ancestors 'none';

Content-Security-Policy: frame-ancestors 'self' https://www.example.org;

仕様書

仕様書 状態 備考
Content Security Policy Level 3
frame-ancestors の定義
草案 変更なし
Content Security Policy Level 2
frame-ancestors の定義
勧告 初回定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
frame-ancestorsChrome 完全対応 40Edge 完全対応 15Firefox 完全対応 33
補足
完全対応 33
補足
補足 Before Firefox 58, frame-ancestors is ignored in Content-Security-Policy-Report-Only.
IE 未対応 なしOpera 完全対応 26Safari 完全対応 10WebView Android ? Chrome Android 完全対応 ありFirefox Android 完全対応 33
補足
完全対応 33
補足
補足 Before Firefox for Android 58, frame-ancestors is ignored in Content-Security-Policy-Report-Only.
Opera Android ? Safari iOS 完全対応 9.3Samsung Internet Android 完全対応 あり

凡例

完全対応  
完全対応
未対応  
未対応
実装状況不明  
実装状況不明
実装ノートを参照してください。
実装ノートを参照してください。

関連情報