recursal/MDN huggingface dataset:
Permissions-Policy: picture-in-picture
======================================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

HTTP の `Permissions-Policy` ヘッダーにおける `picture-in-picture` ディレクティブは、現在の文書で動画をピクチャインピクチャモードで再生することを許可するかどうかを制御します。

特に、この機能の使用をブロックするようポリシーが定義されていた場合、 `HTMLVideoElement.requestPictureInPicture()` を呼び出すと `DOMException` 例外が `SecurityError` 型で発生します。

構文
--


```http
Permissions-Policy: picture-in-picture=<allowlist>;
```


`<allowlist>`

この機能を使用する権限が与えられているオリジンのリスト。詳しくは `Permissions-Policy` > 構文を参照してください。

既定のポリシー
-------

`picture-in-picture` の既定の許可リストは `*` です。

仕様書
---

| Specification |
| --- |
| Picture-in-Picture # permissions-policy |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Permissions-Policy` ヘッダー
* 権限ポリシー
CSP: block-all-mixed-content
============================

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**警告:** このディレクティブは、仕様上、廃止されたものとしてマークされています。すべての混合コンテンツは、自動アップグレードできない場合、ブロックされるようになりました。

HTTP の `Content-Security-Policy` (CSP) **`block-all-mixed-content`** ディレクティブは、ページが HTTPS を使用しているときに HTTP で資産を読み込むことを防ぎます。

能動的および受動的の両方を含む、すべての混合コンテンツリソースのリクエストがブロックされます。これは `<iframe>` の文書にも適用され、ページ全体で混合コンテンツがないことを保証します。

**メモ:** `upgrade-insecure-requests` ディレクティブが `block-all-mixed-content` の前に評価されます。
 前者が設定されていれば、後者は何もしません。どちらかのディレクティブを設定してください。 HTTP にリダイレクトした後で HTTPS を強制することができない古いブラウザーで HTTPS を強制させたくない限り、両方の効果はありません。


構文
--


```http
Content-Security-Policy: block-all-mixed-content;
```

例
-


```http
Content-Security-Policy: block-all-mixed-content;

<meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
```


 より詳細なレベルで http 資産を無効にするには、個々のディレクティブに `https:` を設定することもできます。
 安全ではない HTTP の画像を許可しないようにするには次のようにします。


```http
Content-Security-Policy: img-src https:
```

仕様書
---

 現在のどの仕様にも属していません。
 古い仕様書である Mixed Content Level 1 で定義されていたものです。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Content-Security-Policy`
* `upgrade-insecure-requests`
* 混合コンテンツ
CSP: font-src
=============

HTTP の `Content-Security-Policy` (CSP) における **`font-src`** ディレクティブは、 `@font-face` によってロードされるフォントの有効なソースを指定します。

|  |  |
| --- | --- |
| CSP バージョン | 1 |
| ディレクティブ種別 | Fetch directive |
| `default-src` による代替 | 
 あり。このディレクティブがない場合、ユーザーエージェントは
 `default-src` ディレクティブを探します。
  |

構文
--

`font-src` ポリシーには、1 つ以上のソースが許可されています。


```http
Content-Security-Policy: font-src <source>;
Content-Security-Policy: font-src <source> <source>;
```

### ソース

`<source>` は、 CSP ソース値にあるいずれかの値を取ることができます。

なお、この同じ値のセットはすべてのフェッチディレクティブ（と 他の多くのディレクティブ）で使用できます。

例
-

### 違反している場合

この CSP ヘッダーがある場合、


```http
Content-Security-Policy: font-src https://example.com/
```


以下のフォントリソースの読み込みはブロックされ、読み込まれません。


```html
<style>
 @font-face {
 font-family: "MyFont";
 src: url("https://not-example.com/font");
 }
 body {
 font-family: "MyFont";
 }
</style>
```

仕様書
---

| Specification |
| --- |
| Content Security Policy Level 3 # directive-font-src |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Content-Security-Policy`
* `@font-face`
CSP: frame-ancestors
====================

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

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

**メモ:** **`frame-ancestors`** は、ページを埋め込むことができる親ソースを指定することができます。
 これは、ページ内の iframe をどこから読み込むかを指定する **`frame-src`** とは異なります。



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

構文
--

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


```http
Content-Security-Policy: frame-ancestors <source>;
Content-Security-Policy: frame-ancestors <space separated list of sources>;
```

### ソース

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

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

<host-source>

 ホスト名または IP アドレスによるインターネットホストで、任意で URL スキームやポート番号を付けることができ、空白で区切ります。サイトのアドレスはワイルドカード (アスタリスク文字、`'*'`) で始めることができ、更にポート番号にワイルドカード (`'*'`) を使ってすべての有効なポート番号をソースとして示すことができます。
 例:


* `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` でなければなりません。 CSP 仕様書の オリジンでの URL 表現とリダイレクトカウントが一致するか？ によるものです。

<scheme-source>

`http:` または `https:` のようなスキームです。コロンは必要です。単一引用符は使用しないでください。 data スキームも指定することができます (非推奨)。

* `data:` コンテンツのソースとして `data:` URL が使えるようにします。
 *これは安全ではありません。攻撃者は任意の data: URI を挿入することもできます。使用は控え、スクリプトには絶対に使用しないでください。*
* `mediastream:` コンテンツのソースとして `mediastream:` URI が使えるようにします。
* `blob:` コンテンツのソースとして `blob:` URI が使えるようにします。
* `filesystem:` コンテンツのソースとして `filesystem:` URI が使えるようにします。

`'self'`

保護された文書が提供されたオリジンを、同じ URL スキームおよびポート番号で参照します。単一引用符が必要です。ブラウザーによっては source ディレクティブから `blob` および `filesystem` を独自に除外していることがあります。これらのコンテンツ種別を許可する必要があるサイトは、Data 属性を使用して指定することができます。

`'none'`

空のセットを参照します。つまり、一致する URL はありません。単一引用符が必要です。

例
-


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

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

Content-Security-Policy: frame-ancestors 'self' https://example.org https://example.com https://store.example.com;
```

仕様書
---

| Specification |
| --- |
| Content Security Policy Level 3 # directive-frame-ancestors |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Content-Security-Policy`
* `X-Frame-Options`
* `frame-src` CSP
CSP: report-uri
===============

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

HTTP の `Content-Security-Policy` (CSP) における **`report-uri`** ディレクティブは非推奨で、ディレクティブは、コンテンツセキュリティポリシーに違反する試みを報告するよう、 ユーザーエージェントに指示します。これらの違反報告は、指定された URI への HTTP POST リクエストで送られる JSON 文書で構成されます。

**警告:** `report-to` ディレクティブは、非推奨の **`report-uri`** ディレクティブを置き換えるためのものですが、`report-to` は、まだほとんどのブラウザーで対応されていません。
 そのため、現在のブラウザーとの互換性を保ちつつ、ブラウザーが `report-to` に対応したときに前方互換性を持たせられるよう、 **`report-uri`** と `report-to` の両方を指定することができるようになっています。



```http
Content-Security-Policy: …; report-uri https://endpoint.com; report-to groupname
```


`report-to` に対応しているブラウザーでは、**`report-uri`** ディレクティブは無視されます。

このディレクティブは、それ自体には何の効果もなく、他のディレクティブと組み合わせて初めて意味を持つものです。

|  |  |
| --- | --- |
| CSP バージョン | 1 |
| ディレクティブ種別 | 報告ディレクティブ |
| このディレクティブは `<meta>` 要素には対応していません。 |

構文
--


```http
Content-Security-Policy: report-uri <uri>;
Content-Security-Policy: report-uri <uri> <uri>;
```


<uri>

報告の POST 先となるURI。

例
-

詳細な情報と例は　`Content-Security-Policy-Report-Only`　を参照してください。


```http
Content-Security-Policy: default-src https:; report-uri /csp-violation-report-endpoint/
```


`/csp-violation-report-endpoint/` は、例えば以下のような PHP を実行し、違反の詳細を JSON でログ出力し、違反がログファイルに追加された最初のものであれば、管理者にメールを送信することが可能です。


```php
    <?php

 // Start configure
 $log\_file = dirname(\_\_FILE\_\_) . '/csp-violations.log';
 $log\_file\_size\_limit = 1000000; // bytes - once exceeded no further entries are added
 $email\_address = 'admin@example.com';
 $email\_subject = 'Content-Security-Policy violation';
 // End configuration

 $current\_domain = preg\_replace('/www\./i', '', $\_SERVER['SERVER\_NAME']);
 $email\_subject = $email\_subject . ' on ' . $current\_domain;

 http\_response\_code(204); // HTTP 204 No Content

 $json\_data = file\_get\_contents('php://input');

 // We pretty print the JSON before adding it to the log file
 if ($json\_data = json\_decode($json\_data)) {
 $json\_data = json\_encode($json\_data, JSON\_PRETTY\_PRINT | JSON\_UNESCAPED\_SLASHES);

 if (!file\_exists($log\_file)) {
 // Send an email
 $message = "The following Content-Security-Policy violation occurred on " .
 $current\_domain . ":\n\n" .
 $json\_data .
 "\n\nFurther CPS violations will be logged to the following log file, but no further email notifications will be sent until this log file is deleted:\n\n" .
 $log\_file;
 mail($email\_address, $email\_subject, $message,
 'Content-Type: text/plain;charset=utf-8');
 } else if (filesize($log\_file) > $log\_file\_size\_limit) {
 exit(0);
 }

 file\_put\_contents($log\_file, $json\_data, FILE\_APPEND | LOCK\_EX);
 }
```

仕様書
---

| Specification |
| --- |
| Content Security Policy Level 3 # directive-report-uri |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Content-Security-Policy`
* `Content-Security-Policy-Report-Only`
* `report-to`
CSP: prefetch-src
=================

**Experimental:** **これは実験的な機能です。**  
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

HTTP の `Content-Security-Policy` (CSP) における **`prefetch-src`** ディレクティブは、事前読み込みまたは事前描画することができる有効なリソースを指定します。

|  |  |
| --- | --- |
| CSP バージョン | 3 |
| ディレクティブ種別 | フェッチディレクティブ |
| `default-src` による代替 | あり。このディレクティブがない場合、ユーザーエージェントは `default-src` ディレクティブを探します。 |

構文
--

`prefetch-src` ポリシーには、 1 つ以上のソースが許可されています。


```http
Content-Security-Policy: prefetch-src <source>;
Content-Security-Policy: prefetch-src <source> <source>;
```

### ソース

`<source>` は、 CSP ソース値にあるいずれかの値を取ることができます。

なお、この同じ値のセットはすべてのフェッチディレクティブ（と 他の多くのディレクティブ）で使用できます。

例
-

### ヘッダーが一致しないリソースの事前読み込み

次のコンテンツセキュリティポリシーを持つページがあったとします。


```http
Content-Security-Policy: prefetch-src https://example.com/
```


次のコードで読み込もうとすると、指定された URL が `prefetch-src` のソース一覧にないので、ネットワークエラーになります。


```html
<link rel="prefetch" href="https://example.org/" />
<link rel="prerender" href="https://example.org/" />
```

仕様書
---

#### No specification found

No specification data found for `http.headers.Content-Security-Policy.prefetch-src`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Content-Security-Policy`
CSP: referrer
=============

**非推奨:** この機能は非推奨になりました。まだ対応しているブラウザーがあるかもしれませんが、すでに関連するウェブ標準から削除されているか、削除の手続き中であるか、互換性のためだけに残されている可能性があります。使用を避け、できれば既存のコードは更新してください。このページの下部にある互換性一覧表を見て判断してください。この機能は突然動作しなくなる可能性があることに注意してください。

**非標準:** この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。

HTTP の `Content-Security-Policy` (CSP) における **`referrer`** ディレクティブは、ページから離れたリンクの `Referer` ヘッダー（元の仕様書の綴りミスのため `r` は単一）の情報を指定するために使用されます。この API は非推奨であり、ブラウザーから削除されました。

**メモ:** 代わりに `Referrer-Policy` ヘッダーを使用してください。

構文
--


```http
Content-Security-Policy: referrer <referrer-policy>;
```


`<referrer-policy>` は以下のいずれかの値になります:

"no-referrer"

`Referer` ヘッダーは完全に除外されます。リファラー情報はリクエストと共に送信されません。

"none-when-downgrade"

これがポリシーが指定されていない場合のユーザーエージェントの既定の動作です。以前と同じ安全性 (HTTPS->HTTPS) の宛先にはオリジンが送信されますが、安全性の低い宛先 (HTTPS->HTTP) には送信されません。

"origin"

 すべての場合で、リファラーとして文書ののオリジンのみ送信されます。
 `https://example.com/page.html` の文書の場合は `https://example.com/` というリファラーが送信されます。


"origin-when-cross-origin" / "origin-when-crossorigin"

同一オリジンのリクエストを実行する際は完全な URL が送信されますが、それ以外の場合は文書のオリジンのみ送信されます。

"unsafe-url"

同一オリジンまたはオリジン間のリクエストを実行する際は完全な URL (引数は除外) が送信されます。このポリシーは、 TLS で保護されたリソースから保護されていないオリジンへのオリジンとパスを漏洩させます。この設定の影響を慎重に検討してください。

例
-


```http
Content-Security-Policy: referrer "none";
```

仕様書
---

いずれの仕様書の一部でもありません。

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Content-Security-Policy`
* `Referrer-Policy` ヘッダー
* `Referer` ヘッダー
CSP: upgrade-insecure-requests
==============================

HTTP の `Content-Security-Policy` (CSP) における **`upgrade-insecure-requests`** ディレクティブは、ユーザーエージェントに、すべてのサイトの安全でない URL（HTTP 経由で提供される URL）をセキュリティで保護された URL（HTTPS を介して提供されるもの）で置き換えられたかのように処理するよう指示します。このディレクティブは、書き換えが必要な安全ではない古い URL が多数存在するウェブサイトのためのものです。

**メモ:** `upgrade-insecure-requests` ディレクティブは、 `block-all-mixed-content` よりも前に処理され、もし設定されていれば後者は何もしません。どちらかのディレクティブを設定することをお勧めしますが、 HTTP にリダイレクトした後で HTTPS を強制することができない古いブラウザーで HTTPS を強制させたくない限り、両方を指定することはできません。

`upgrade-insecure-requests` ディレクティブは、第三者のサイトのリンクを経由してサイトにアクセスしたユーザーが最上位のナビゲーション用に HTTPS にアップグレードされることを保証しないため、 `Strict-Transport-Security` (HSTS) ヘッダーを置換せず、ユーザーがSSLストリッピング攻撃の対象にならないように、適切な `max-age` を設定するようにしてください。

構文
--


```http
Content-Security-Policy: upgrade-insecure-requests;
```

例
-

### HTTP ヘッダーの使用


```http
Content-Security-Policy: upgrade-insecure-requests;
```

### HTML の meta 要素の使用


```html
<meta
 http-equiv="Content-Security-Policy"
 content="upgrade-insecure-requests" />
```


HTTP から HTTPS に移行したいドメイン example.com に上記のヘッダーを設定すると、ナビゲーション以外の安全でないリソースリクエスト（ファーストパーティおよびサードパーティのリクエスト）は自動的にアップグレードされます。


```html
<img src="http://example.com/image.png" />
<img src="http://not-example.com/image.png" />
```


これらの URL は、リクエストが行われる前に書き直されます。つまり、安全でないリクエストがネットワークに侵入しないようにします。なお、リクエストされたリソースが実際に HTTPS 経由で利用可能ではない場合、リクエストは HTTP で代替されずに失敗することに注意してください。


```html
<img src="https://example.com/image.png" />
<img src="https://not-example.com/image.png" />
```


第三者のリソースへのナビゲーションをアップグレードすると、破壊の可能性が大幅に高まりますので、これらはアップグレードされません。


```html
<a href="https://example.com/">Home</a>
<a href="http://not-example.com/">Home</a>
```

### 安全ではないリクエストの発見

`Content-Security-Policy-Report-Only` ヘッダーと `report-uri` ディレクティブを利用して、強制ポリシーと報告されたポリシーを次のように設定することができます。


```http
Content-Security-Policy: upgrade-insecure-requests; default-src https:
Content-Security-Policy-Report-Only: default-src https:; report-uri /endpoint
```


このようにして、安全なサイト上の安全でない要求は引き続きアップグレードされますが、監視ポリシーに違反した場合だけが、安全でないリソースがエンドポイントに報告されます。

仕様書
---

| Specification |
| --- |
| Upgrade Insecure Requests # delivery |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Content-Security-Policy`
* `Upgrade-Insecure-Requests` ヘッダー
* `Strict-Transport-Security` (HSTS) ヘッダー
* `block-all-mixed-content`
* 混合コンテンツ
CSP: style-src-attr
===================

HTTP の `Content-Security-Policy` (CSP) における **`style-src-attr`** ディレクティブは、個々の DOM 要素に適用されるインラインスタイルのための有効なソースを指定します。

 このディレクティブは、`<style>` 要素、および `rel="stylesheet"` を持つ `<link>` 要素に有効なソースを設定しません。
 これらは、`style-src-elem` を使用して設定されます（そして、すべてのスタイルのための有効なソースは、`style-src` で設定することができます）。


|  |  |
| --- | --- |
| CSP バージョン | 3 |
| ディレクティブ種別 | フェッチディレクティブ |
| フォールバック | 
 あり。
 このディレクティブがない場合、ユーザーエージェントは `style-src` を探し、両方ともなかった場合は、`default-src` で代替されます。
  |

構文
--

`style-src-attr` ポリシーでは、 1 つ以上のソースを許可することができます。


```http
Content-Security-Policy: style-src-attr <source>;
Content-Security-Policy: style-src-attr <source> <source>;
```


`style-src-attr` は `style-src` との組み合わせで使用することができます。


```http
Content-Security-Policy: style-src <source>;
Content-Security-Policy: style-src-attr <source>;
```

### ソース

`<source>` には、CSP ソース値 に掲載されている値のいずれかが使用できます。

この同じ値の集合は、すべてのフェッチディレクティブ（と 他の多くのディレクティブ）で使用できるということに注意してください。

例
-

### 違反している場合

この CSP ヘッダーがあったとします。


```http
Content-Security-Policy: style-src-attr 'none'
```


…要素へ適用されたインラインスタイルは適用されません。


```html
<div style="display:none">Foo</div>
```


このポリシーは、`style` 属性を直接設定したり、`cssText` を設定することによって JavaScript で適用されるスタイルもブロックすることになります。


```js
document.querySelector("div").setAttribute("style", "display:none;");
document.querySelector("div").style.cssText = "display:none;";
```


要素の `style` プロパティに直接設定されたスタイルプロパティはブロックされないので、ユーザーは JavaScript で安全にスタイルを操作できるようになります。


```js
document.querySelector("div").style.display = "none";
```


JavaScript を使用すると、CSP の `script-src` ディレクティブを使用して独自にブロックされる可能性があることに注意してください。

仕様書
---

| Specification |
| --- |
| Content Security Policy Level 3 # directive-style-src-attr |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Content-Security-Policy`
* `style-src`
* `style-src-elem`
* `Link` ヘッダー
* `<style>`, `<link>`
* `@import`
* `CSSStyleSheet.insertRule()`
* `CSSGroupingRule.insertRule()`
* `CSSStyleDeclaration.cssText`
CSP: child-src
==============

HTTP の `Content-Security-Policy` (CSP) における **`child-src`** ディレクティブは、ウェブワーカーと `<frame>` や `<iframe>` などの要素を使用して読み込んだネストした閲覧コンテキストに対して有効なソースを定義しています。ワーカーでは、準拠しないリクエストは、ユーザーエージェントによって致命的なネットワークエラーとして扱われます。

|  |  |
| --- | --- |
| CSP バージョン | 2 |
| ディレクティブ種別 | フェッチディレクティブ |
| `default-src` の代替 | あり。このディレクティブがない場合、ユーザーエージェントは `default-src` ディレクティブを探していきます。 |

構文
--

`child-src` ポリシーでは、1 つまたは複数のソースを許可することができます。


```http
Content-Security-Policy: child-src <source>;
Content-Security-Policy: child-src <source> <source>;
```

### ソース

`<source>` は、 CSP ソース値にあるいずれかの値を取ることができます。

なお、この同じ値のセットはすべてのフェッチディレクティブ（と他の多くのディレクティブ）で使用できます。

例
-

### 違反している場合

この CSP ヘッダーがあったとします。


```http
Content-Security-Policy: child-src https://example.com/
```


この `<iframe>` とワーカーはブロックされ、読み込まれません。


```html
<iframe src="https://not-example.com"></iframe>

<script>
 const blockedWorker = new Worker("data:application/javascript,…");
</script>
```

仕様書
---

| Specification |
| --- |
| Content Security Policy Level 3 # directive-child-src |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Content-Security-Policy`
* `<frame>` および `<iframe>`
* `Worker`, `SharedWorker`, `ServiceWorker`
CSP: media-src
==============

HTTP の `Content-Security-Policy` (CSP) における **`media-src`** ディレクティブは、 `<audio>` および `<video>` 要素を使用して読み込むメディアの有効なソースを指定します。

|  |  |
| --- | --- |
| CSP バージョン | 1 |
| ディレクティブ種別 | フェッチディレクティブ |
| `default-src` による代替 | あり。このディレクティブがない場合、ユーザーエージェントは `default-src` ディレクティブを探します。 |

構文
--

`media-src` ポリシーには、 1 つ以上のソースが許可されています。


```http
Content-Security-Policy: media-src <source>;
Content-Security-Policy: media-src <source> <source>;
```

### ソース

`<source>` は、 CSP ソース値にあるいずれかの値を取ることができます。

なお、この同じ値のセットはすべてのフェッチディレクティブ（と 他の多くのディレクティブ）で使用できます。

例
-

### 違反する場合

この CSP ヘッダーがある場合、


```http
Content-Security-Policy: media-src https://example.com/
```


以下の `<audio>`, `<video>`, `<track>` の各要素はブロックされ、読み込まれません。


```html
<audio src="https://not-example.com/audio"></audio>

<video src="https://not-example.com/video">
  <track kind="subtitles" src="https://not-example.com/subtitles" />
</video>
```

仕様書
---

| Specification |
| --- |
| Content Security Policy Level 3 # directive-media-src |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Content-Security-Policy`
* `<audio>`, `<video>`, `<track>`
CSP: object-src
===============

HTTP の `Content-Security-Policy` の **`object-src`** ディレクティブは、 `<object>`, `<embed>`, `<applet>` の各要素の妥当なソースを指定します。

`<object>`, `<embed>`, `<applet>` の各要素の許可される種類を設定するには、 `plugin-types` ディレクティブを使用してください。

**メモ:** `object-src` で制御される要素は、おそらく偶然にも古い HTML 要素と見なされており、新しい標準機能が搭載されていません（`<iframe>` の `sandbox` や `allow` などのセキュリティ属性など）。したがって、このフェッチディレクティブで制限することを推奨します （例えば、可能であれば明示的に `object-src 'none'` を設定するなど）。


|  |  |
| --- | --- |
| CSP バージョン | 1 |
| ディレクティブ種別 | フェッチディレクティブ |
| `default-src` による代替 | あり。このディレクティブがない場合、ユーザーエージェントは `default-src` ディレクティブを探します。 |

構文
--

`object-src` ポリシーには、 1 つまたは複数のソースが許可されています。


```http
Content-Security-Policy: object-src <source>;
Content-Security-Policy: object-src <source> <source>;
```

### ソース

`<source>` は、 CSP ソース値にあるいずれかの値を取ることができます。

なお、この同じ値のセットはすべてのフェッチディレクティブ（と 他の多くのディレクティブ）で使用できます。

例
-

### 違反の場合

この CSP ヘッダーがある場合、


```http
Content-Security-Policy: object-src https://example.com/
```


以下の `<object>`, `<embed>`, `<applet>` の各要素はブロックされ、読み込まれません。


```html
<embed src="https://not-example.com/flash"></embed>
<object data="https://not-example.com/plugin"></object>
<applet archive="https://not-example.com/java"></applet>
```

仕様書
---

| Specification |
| --- |
| Content Security Policy Level 3 # directive-object-src |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Content-Security-Policy`
* `<object>`, `<embed>`, `<applet>`
* `plugin-types`
CSP: base-uri
=============

HTTP の `Content-Security-Policy` の **`base-uri`** ディレクティブは、文書の `<base>` 要素で使用することができる URL を制限します。この値が存在しない場合は、任意の URI が許可されます。このディレクティブが存在しない場合、ユーザーエージェントは `<base>` 要素の値を使用します。

|  |  |
| --- | --- |
| CSP バージョン | 2 |
| ディレクティブ種別 | Document directive |
| `default-src` による代替 | 設定しないと、任意の URL が許可されます。 |

構文
--

1 つまたは複数の*ソース*を base-uri ポリシーに使用することができます。


```http
Content-Security-Policy: base-uri <source>;
Content-Security-Policy: base-uri <source> <source>;
```

### ソース

このディレクティブは、他の CSP ディレクティブと同じように、引数のソース値のほとんどを使用します。 CSP のソース値。

なお、 `base-uri` ではいくつかの値、たとえば `'unsafe-inline'` や `'strict-dynamic'` などのキーワードは意味がありません。

例
-

### Meta タグの設定


```html
<meta http-equiv="Content-Security-Policy" content="base-uri 'self'" />
```

### Apache の設定
```

<IfModule mod_headers.c>
Header set Content-Security-Policy "base-uri 'self'";
</IfModule>
```

### Nginx の設定
```

add_header Content-Security-Policy "base-uri 'self';"
```

### 違反になる場合

ドメインが `example.com` ではないので、 `<base>` 要素の `href` を `https://example.com` に設定すると、 CSP 違反となります。


```html
<meta http-equiv="Content-Security-Policy" content="base-uri 'self'" />
<base href="https://example.com/" />

<!--
// Error: Refused to set the document's base URI to 'https://example.com/'
// because it violates the following Content Security Policy
// directive: "base-uri 'self'"
-->
```

仕様書
---

| Specification |
| --- |
| Content Security Policy Level 3 # directive-base-uri |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Content-Security-Policy`
* `<base>`
* `Node.baseURI`
CSP: connect-src
================

HTTP の `Content-Security-Policy` (CSP) における **`connect-src`** ディレクティブは、スクリプトインターフェイスを使用して読み込むことができる URL を制限します。以下の API が制限の対象となります。

* `<a>` の `ping` 属性
* `fetch()`
* `XMLHttpRequest`
* `WebSocket`
* `EventSource`
* `Navigator.sendBeacon()`

**メモ:** `connect-src 'self'` はすべてのブラウザーで websocket スキーマを解決するわけではありません。この問題に詳細情報があります。


|  |  |
| --- | --- |
| CSP バージョン | 1 |
| ディレクティブ種別 | フェッチディレクティブ |
| `default-src` による代替 | あり。このディレクティブがない場合、ユーザーエージェントは `default-src` ディレクティブを探します。 |

構文
--

connect-src ポリシーには、1 つ以上のソースが許可されています。


```http
Content-Security-Policy: connect-src <source>;
Content-Security-Policy: connect-src <source> <source>;
```

### ソース

`<source>` は、 CSP ソース値にあるいずれかの値を取ることができます。

なお、この同じ値のセットはすべてのフェッチディレクティブ（と 他の多くのディレクティブ）で使用できます

例
-

### 違反の場合

以下の CSP ヘッダーを指定した場合、


```http
Content-Security-Policy: connect-src https://example.com/
```


以下のコネクションはブロックされ、読み込まれません。


```html
<a ping="https://not-example.com">
  <script>
 const xhr = new XMLHttpRequest();
 xhr.open("GET", "https://not-example.com/");
 xhr.send();

 const ws = new WebSocket("https://not-example.com/");

 const es = new EventSource("https://not-example.com/");

 navigator.sendBeacon("https://not-example.com/", {
 /\* … \*/
 });
 </script></a
>
```

仕様書
---

| Specification |
| --- |
| Content Security Policy Level 3 # directive-connect-src |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

### 互換性のメモ

* Firefox 23 以前では、`xhr-src` が `connect-src` ディレクティブの代わりに、`XMLHttpRequest` を制限するだけのために使用されていました。
関連情報
----

* `Content-Security-Policy`
* `<a>` の `ping`ement/a#ping) 属性
* `fetch()`
* `XMLHttpRequest`
* `WebSocket`
* `EventSource`