--- title: 'CSP: frame-ancestors' slug: Web/HTTP/Headers/Content-Security-Policy/frame-ancestors tags: - Ancestors - CSP - Content-Security-Policy - Directive - Frame - HTTP - Security - frame-ancestors translation_of: Web/HTTP/Headers/Content-Security-Policy/frame-ancestors ---
{{HTTPSidebar}}

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

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

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

構文

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

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

ソース

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

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

<host-source>
スペースで区切られた、URL schemeやポート番号をふくむことができるIPアドレスや名前によるインターネットホスト名です。サイトのアドレスの前にワイルドカード (アスタリスク、 '*')を含めることができ、さらにすべてのポートがソースとして有効であることを示すためにポート番号としてワイルドカード ('*') を使うこともできます。ホスト名をシングルクオートで囲うことはできません。
例:

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

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

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

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

仕様書

仕様書 状態 備考
{{specName("CSP 3.0", "#directive-frame-ancestors", "frame-ancestors")}} {{Spec2('CSP 3.0')}} 変更なし
{{specName("CSP 1.1", "#directive-frame-ancestors", "frame-ancestors")}} {{Spec2('CSP 1.1')}} 初回定義

ブラウザーの互換性

{{Compat("http.headers.csp.Content-Security-Policy.frame-ancestors")}}

関連情報