recursal/MDN huggingface dataset:
CSP: style-src-elem
===================

HTTP の `Content-Security-Policy` (CSP) における **`style-src-elem`** ディレクティブは、スタイルシート `<style>` 要素と `rel="stylesheet"` を持つ `<link>` 要素の有効なソースを指定します。

これらは `style-src-attr` を使用して設定されます（また、すべてのスタイルの有効なソースは `style-src` で設定することができます）。

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

構文
--

1 つ以上のソースが `style-src-elem` ポリシーで指定できます。


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


`style-src-elem` は `style-src` との組み合わせで使用されます。


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

### ソース

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

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

例
-

### 違反している場合

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


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


…このスタイルシートはブロックされ、読み込まれません。


```html
<link href="https://not-example.com/styles/main.css" rel="stylesheet" />

<style>
 #inline-style {
 background: red;
 }
</style>

<style>
 @import url("https://not-example.com/styles/print.css") print;
</style>
```


…同様に、`Link` ヘッダーを使用して読み込まれたスタイル設定です。


```http
Link: <https://not-example.com/styles/stylesheet.css>;rel=stylesheet
```

仕様書
---

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

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

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

関連情報
----

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

HTTP の `Content-Security-Policy` (CSP) における **`form-action`** ディレクティブは、指定のコンテキストからフォームの送信先として使用される URL を制限します。

**警告:** `form-action` がフォーム送信後のリダイレクトをブロックするかどうかは 議論の最中 であり、この点に関する実装はブラウザーによって異なります（例えば、 Firefox 57 はリダイレクトをブロックしませんが、 Chrome 63 はリダイレクトをブロックします。）


|  |  |
| --- | --- |
| CSP バージョン | 2 |
| ディレクティブ種別 | ナビゲーションディレクティブ |
| `default-src` による代替 | なし。このディレクティブが設定されていない場合、すべてが許可されます。 |

構文
--

`form-action` ポリシーには、 1 つ以上のソースを設定することができます。


```http
Content-Security-Policy: form-action <source>;
Content-Security-Policy: form-action <source> <source>;
```

### ソース

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

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

例
-

### Meta タグの設定


```html
<meta http-equiv="Content-Security-Policy" content="form-action 'none'" />
```

### Apache の設定


```html
<IfModule mod\_headers.c>
  Header set Content-Security-Policy "form-action 'none';"
</IfModule>
```

### Nginx の設定
```

add_header Content-Security-Policy "form-action 'none';"
```

### 違反している場合

インラインの JavaScript で action を設定した `<form>` 要素 は CSP 違反となります。


```html
<meta http-equiv="Content-Security-Policy" content="form-action 'none'" />

<form action="javascript:alert('Foo')" id="form1" method="post">
  <input type="text" name="fieldName" value="fieldValue" />
  <input type="submit" id="submit" value="submit" />
</form>

<!--
// エラー: 以下に違反したので、フォームデータの送信は拒否されました。
// Content Security Policy ディレクティブ: "form-action 'none'"
-->
```

仕様書
---

| Specification |
| --- |
| Content Security Policy Level 3 # directive-form-action |

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

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

関連情報
----

* `Content-Security-Policy`
* `<form>`
CSP: img-src
============

HTTP の `Content-Security-Policy` における **`img-src`** ディレクティブは、画像やファビコンの有効なソースを指定します。

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

構文
--

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


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

### ソース

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

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

例
-

### 違反する場合

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


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


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


```html
<img src="https://not-example.com/foo.jpg" alt="example picture" />
```

仕様書
---

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

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

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

関連情報
----

* `Content-Security-Policy`
* `<img>`
CSP: plugin-types
=================

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

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

HTTP の `Content-Security-Policy` (CSP) における **`plugin-types`** ディレクティブは、文書に埋め込むことができるプラグインのセットを、読み込むことができるリソースの種類を制限することによって制限します。

`<embed>`, `<object>`, `<applet>` の各要素のインスタンス化は、次の場合に失敗します。

* 要素が妥当な MIME 型を宣言していなかった場合
* 宣言された型が `plugin-types` ディレクティブで指定されたもののいずれにも一致しなかった場合
* 読み込まれたリソースが宣言された型に一致しなかった場合

|  |  |
| --- | --- |
| CSP バージョン | 2 |
| ディレクティブ種別 | 文書ディレクティブ |
| `default-src` による代替 | なし。これを設定しないと何でも許可される。 |

構文
--

1 つ以上の MIME タイプを `plugin-types` ポリシーに設定することができます。


```http
Content-Security-Policy: plugin-types <type>/<subtype>;
Content-Security-Policy: plugin-types <type>/<subtype> <type>/<subtype>;
```


* <type>/<subtype>
    + 妥当な MIME タイプ。
例
-

### プラグインを不許可にする

全てのプラグインを不許可にするには、 `object-src` ディレクティブを `'none'` に設定すればプラグインが不許可になります。 `plugin-types` ディレクティブは、 `object-src` でプラグインを許可している場合に限って使用することができます。


```html
<meta http-equiv="Content-Security-Policy" content="object-src 'none'" />
```

### Java アプレットの許可

`<applet>` を読み込むには、 `application/x-java-applet` を指定する必要があります。


```http
Content-Security-Policy: plugin-types application/x-java-applet
```

仕様書
---

現在のどの仕様にも属していません。以前は CSP 2 で定義されていました。

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

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

関連情報
----

* `Content-Security-Policy`: `object-src`
* `<object>`
* `<embed>`
* `<applet>`
* `X-Content-Type-Options`
CSP: worker-src
===============

HTTP の `Content-Security-Policy` (CSP) における **`worker-src`** ディレクティブは、 `Worker`, `SharedWorker`, `ServiceWorker` スクリプトの有効なソースを指定します。

|  |  |
| --- | --- |
| CSP バージョン | 3 |
| ディレクティブ種別 | フェッチディレクティブ |
| フォールバック | このディレクティブがない場合、ユーザーエージェントはワーカーの実行を制御するとき、まず `child-src` ディレクティブを探し、次に `script-src` ディレクティブ、そして最後に `default-src` ディレクティブを探します。 |

構文
--

`worker-src` ポリシーには 1 つ以上のソースを指定することができます。


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

### ソース

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

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

例
-

### 違反の場合

この CSP ヘッダーが与えられている時、


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


`Worker`, `SharedWorker`, `ServiceWorker` はブロックされ、読み込まれません。


```html
<script>
 let blockedWorker = new Worker("data:application/javascript,…");
 blockedWorker = new SharedWorker("https://not-example.com/");
 navigator.serviceWorker.register("https://not-example.com/sw.js");
</script>
```

仕様書
---

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

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

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

関連情報
----

* `Content-Security-Policy`
* ウェブワーカーでの CSP
* `Worker`, `SharedWorker`, `ServiceWorker`
CSP: default-src
================

HTTP の `Content-Security-Policy` (CSP) における **`default-src`** ディレクティブは、他の CSP のフェッチディレクティブの代替として提供します。以下のディレクティブがいずれかが存在しないと、ユーザーエージェントは `default-src` ディレクティブを探して、この値を使用します。

* `child-src`
* `connect-src`
* `font-src`
* `frame-src`
* `img-src`
* `manifest-src`
* `media-src`
* `object-src`
* `prefetch-src`
* `script-src`
* `script-src-elem`
* `script-src-attr`
* `style-src`
* `style-src-elem`
* `style-src-attr`
* `worker-src`

|  |  |
| --- | --- |
| CSP バージョン | 1 |
| ディレクティブ種別 | フェッチディレクティブ |

構文
--

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


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

### ソース

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

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

例
-

### default-src で継承されない場合

他のディレクティブが指定されている場合、`default-src` は影響しません。以下のヘッダー、


```http
Content-Security-Policy: default-src 'self'; script-src https://example.com
```


は、下記のものと同じです。


```http
Content-Security-Policy: connect-src 'self';
 font-src 'self';
 frame-src 'self';
 img-src 'self';
 manifest-src 'self';
 media-src 'self';
 object-src 'self';
 script-src https://example.com;
 style-src 'self';
 worker-src 'self'
```

仕様書
---

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

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

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

関連情報
----

* `Content-Security-Policy`
* CSP ディレクティブ (https://www.w3.org/TR/CSP/#csp-directives):
    + フェッチディレクティブ
    + 文書ディレクティブ
    + ナビゲーションディレクティブ
    + 報告ディレクティブ
    + `upgrade-insecure-requests`
    + `block-all-mixed-content`
CSP: script-src-elem
====================

HTTP の `Content-Security-Policy` (CSP) における **`script-src-elem`** ディレクティブは、 JavaScript の `<script>` 要素の有効なソースを指定します。

 このディレクティブは `<script>` 要素（スクリプトリクエストとブロックの両方）の中で有効なソースのみを指定します。
 インラインスクリプトイベントハンドラー (`onclick`) や "unsafe-eval" チェックでゲートされたスクリプト実行メソッド、XSLT スタイルシートなど、スクリプトの実行のきっかけとなるような他の JavaScript ソースには適用されません。
 （有効なソースは、script-src を使用してすべての JavaScript スクリプトソースに指定することも、script-src-attr を使用してインラインスクリプトハンドラーにのみ指定することも可能です。）


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

構文
--

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


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


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


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

### ソース

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

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

例
-

### 違反の場合

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


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


…以下のスクリプトがブロックされ、読み込まれず、実行されません。


```html
<script src="https://not-example.com/js/library.js"></script>
```

仕様書
---

| Specification |
| --- |
| Content Security Policy Level 3 # directive-script-src-elem |

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

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

関連情報
----

* `Content-Security-Policy`
* `<script>`
* `script-src`
* `script-src-attr`
CSP: report-to
==============

`Content-Security-Policy` の **`Report-To`** は HTTP のレスポンスヘッダーフィールドで、ユーザーエージェントにオリジンの報告先のエンドポイントを保存するよう指示します。


```http
Content-Security-Policy: …; report-to groupname
```


このディレクティブは単体では効果がありませんが、他のディレクティブとの組み合わせでのみ意味を持ちます。

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

構文
--


```http
Content-Security-Policy: report-to <json-field-value>;
```

例
-

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


```http
Report-To: { "group": "csp-endpoint",
 "max\_age": 10886400,
 "endpoints": [
 { "url": "https://example.com/csp-reports" }
 ] },
 { "group": "hpkp-endpoint",
 "max\_age": 10886400,
 "endpoints": [
 { "url": "https://example.com/hpkp-reports" }
 ] }
Content-Security-Policy: …; report-to csp-endpoint
```



```http
Report-To: { "group": "endpoint-1",
 "max\_age": 10886400,
 "endpoints": [
 { "url": "https://example.com/reports" },
 { "url": "https://backup.com/reports" }
 ] }

Content-Security-Policy: …; report-to endpoint-1
```



```http
Reporting-Endpoints: endpoint-1="https://example.com/reports"

Content-Security-Policy: …; report-to endpoint-1
```

仕様書
---

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

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

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

関連情報
----

* `Content-Security-Policy`
* `Content-Security-Policy-Report-Only`
CSP: trusted-types
==================

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

HTTP の `Content-Security-Policy` (CSP) における **`trusted-types`** 
Experimental
 ディレクティブは、既知の DOM XSS シンクの使用を、文字列の代わりにスプーフィング不可能な型付きの値のみを受け入れる定義済みの関数のセットに制限するようにユーザエージェントに指示します。

**`require-trusted-types-for`** ディレクティブと一緒に使用することで、作者は DOM への値の書き込みを守るルールを定義することができ、 DOM XSS 攻撃の対象をウェブアプリケーションのコードベースの小さな孤立した部分に減らすことができ、監視やコードレビューが容易になります。このディレクティブは、 Trusted Types API から `trustedTypes.createPolicy` で作成された信頼できる型のポリシー名の許可リストを宣言します。

構文
--


```http
Content-Security-Policy: trusted-types;
Content-Security-Policy: trusted-types 'none';
Content-Security-Policy: trusted-types <policyName>;
Content-Security-Policy: trusted-types <policyName> <policyName> 'allow-duplicates';
```


<policyName>

有効なポリシー名は英数字、または "`-#=_/@.%`" のうちのいずれかのみからなります。ポリシー名に星印 (`*`) を使用すると、ユーザーエージェントは任意の一意なポリシー名を許可するようになります（'`allow-duplicates`' はそれをさらに緩和することができます）。

`'none'`

Trusted Type ポリシーを作成しない（\*<policyName>\*を指定しないのと同じ）。

`'allow-duplicates'`

既に使用されている名前でポリシーを作成することを可能にします。

例
-


```js
// Content-Security-Policy: trusted-types foo bar 'allow-duplicates';

if (typeof trustedTypes !== "undefined") {
  const policyFoo = trustedTypes.createPolicy("foo", {});
  const policyFoo2 = trustedTypes.createPolicy("foo", {});
  const policyBaz = trustedTypes.createPolicy("baz", {}); // Throws and dispatches a SecurityPolicyViolationEvent.
}
```

仕様書
---

| Specification |
| --- |
| Trusted Types # trusted-types-csp-directive |

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

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

関連情報
----

* `Content-Security-Policy`
* クロスサイトスクリプティング (XSS)
* Prevent DOM-based cross-site scripting vulnerabilities with Trusted Types
* Trusted Types with DOMPurify XSS sanitizer
* Trusted Types polyfill
CSP: frame-src
==============

HTTP の `Content-Security-Policy` (CSP) における **`frame-src`** ディレクティブは、 `<frame>` や `<iframe>` のような要素を使用した内部の閲覧コンテキストの読み込みに有効なソースを指定します。

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



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

構文
--

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


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

### ソース

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

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

例
-

### 違反する場合

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


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


以下の `<iframe>` はブロックされ、読み込まれません。


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

仕様書
---

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

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

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

関連情報
----

* `Content-Security-Policy`
* `<frame>` および `<iframe>`
* `frame-ancestors`
CSP: require-trusted-types-for
==============================

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

HTTP の `Content-Security-Policy` (CSP) における **`require-trusted-types-for`** 
Experimental
 ディレクティブは、 `Element.innerHTML` セッターのような DOM XSS シンク関数に渡されるデータを制御するように、ユーザーエージェントに指示します。

使用された場合、これらの関数は Trusted Type ポリシーによって作成された、なりすましできない、型付きの値のみを受け入れ、文字列は拒否します。これは Trusted Type ポリシーの作成を保護する **`trusted-types`** ディレクティブと一緒に、DOM への値の書き込みを保護するルールを定義し、ウェブアプリケーションコードベースの小さく孤立した部分に DOM XSS 攻撃表面を削減し、監視とコードレビューを容易にすることができるようにしました。

構文
--


```http
Content-Security-Policy: require-trusted-types-for 'script';
```


`'script'`

DOM XSS インジェクションのシンク関数で文字列を使用することを禁止し、Trusted Type ポリシーで作成された種類に一致することを要求します。

例
-


```js
// Content-Security-Policy: require-trusted-types-for 'script'; trusted-types foo;

const attackerInput = '<svg onload="alert(/cross-site-scripting/)" />';
const el = document.createElement("div");

if (typeof trustedTypes !== "undefined") {
  // Create a policy that can create TrustedHTML values
  // after sanitizing the input strings with DOMPurify library.
  const sanitizer = trustedTypes.createPolicy("foo", {
    createHTML: (input) => DOMPurify.sanitize(input),
  });

  el.innerHTML = sanitizer.createHTML(attackerInput); // Puts the sanitized value into the DOM.
  el.innerHTML = attackerInput; // Rejects a string value; throws a TypeError.
}
```

仕様書
---

| Specification |
| --- |
| Trusted Types # require-trusted-types-for-csp-directive |

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

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

関連情報
----

* `Content-Security-Policy`
* クロスサイトスクリプティング (XSS)
* DOM XSS injection sinks covered by Trusted Types
* Prevent DOM-based cross-site scripting vulnerabilities with Trusted Types
* Trusted Types with DOMPurify XSS sanitizer
* Trusted Types polyfill
CSP: sandbox
============

HTTP の `Content-Security-Policy` (CSP) における **`sandbox`** ディレクティブは、 `<iframe>` の `sandbox` 属性と同様に、要求されたリソースに対してサンドボックスを有効にします。これは、ポップアップの防止、プラグインやスクリプトの実行の防止、同一オリジンポリシーの強制などを含むページ操作の制限を適用します。

|  |  |
| --- | --- |
| CSP バージョン | 1.1 / 2 |
| ディレクティブ種別 | 文書ディレクティブ |
| このディレクティブは `<meta>` 要素や `Content-Security-policy-Report-Only` ヘッダーフィールドでは対応していません。 |

構文
--


```http
Content-Security-Policy: sandbox;
Content-Security-Policy: sandbox <value>;
```


`<value>` は省略可能で、以下の値の内の一つです。

`allow-downloads`

download 属性がついた `<a>` または `<area>` 要素における、ファイルのダウンロードのための操作を通してファイルのダウンロードを可能にします。これは、ユーザーがリンクをクリックしたか、JS コードがユーザーとの対話なしに開始したかに関係なく、動作します。

`allow-downloads-without-user-activation` 
Experimental

ユーザーによる指示のないダウンロードを許可します。

`allow-forms`

ページがフォームを送信することを許可します。このキーワードを使用しない場合、フォームは通常通り表示されますが、フォームを送信しても入力の検証、ウェブサーバへのデータ送信、ダイアログの終了は行われません。

`allow-modals`

ページが `Window.alert()`、`Window.confirm()`、`Window.print()`、`Window.prompt()` によってモーダルウィンドウを開けるようにします。一方、 `<dialog>` を開くことはこのキーワードと無関係に許可されます。また、ページが `BeforeUnloadEvent` イベントを受信することもできるようにします。

`allow-orientation-lock`

リソースが、画面の向きをロックできるようにします。

`allow-pointer-lock`

このページが、ポインターロック API を使用することを許可します。

`allow-popups`

ポップアップ（ `Window.open()`、`target="_blank"`、`Window.showModalDialog()` などによるもの）を許可します。このキーワードが使用されなかった場合、この機能は暗黙に失敗します。

`allow-popups-to-escape-sandbox`

サンドボックス化された文書が、サンドボックスフラグを強制することなく新しいウィンドウを開くことを許可します。これによって、例えば、サードパーティの広告が安全にサンドボックス化される一方、ランディングページには同じ制限が強制されなくなります。

`allow-presentation`

埋め込みを行った者が、 iframe がプレゼンテーションセッションを開始できるかどうかを制御できるようになります。

`allow-same-origin`

このトークンが使用されなかった場合、リソースは同一オリジンポリシーに常に失敗する特別なオリジンからのものとして扱われます（潜在的にデータストレージやクッキーへのアクセスや、一部の JavaScript API の使用を阻止することが可能です）。

`allow-scripts`

このページががスクリプトを実行することを許可します（ポップアップウィンドウの生成を除く）。このキーワードが使用されなかった場合は、この操作は許可されません。

`allow-storage-access-by-user-activation` 
Experimental

リソースが親のストレージ機能にストレージアクセス API でアクセスを要求できるようにします。

`allow-top-navigation`

リソースが、（`_top` という名前の）最上位の閲覧コンテキストを移動させることを許可します。

`allow-top-navigation-by-user-activation`

ユーザーの指示で開始された場合に限り、リソースが最上位の閲覧コンテキストを移動させます。

`allow-top-navigation-to-custom-protocols`

ブラウザーに組み込まれている、またはウェブサイトによって登録された `http` 以外のプロトコルへのナビゲーションを可能にします。この機能は `allow-popups` または `allow-top-navigation` キーワードでも有効になる。

例
-


```http
Content-Security-Policy: sandbox allow-scripts;
```

仕様書
---

| Specification |
| --- |
| Content Security Policy Level 3 # directive-sandbox |

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

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

関連情報
----

* `Content-Security-Policy`
* `<iframe>` 要素の `sandbox` 属性
CSP: manifest-src
=================

HTTP の `Content-Security-Policy``: manifest-src` ディレクティブは、どのマニフェストがリソースに適用されるかを指定します。

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

構文
--

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


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

### ソース

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

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

例
-

### 違反する場合

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


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


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


```html
<link rel="manifest" href="https://not-example.com/manifest" />
```

仕様書
---

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

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

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

関連情報
----

* `Content-Security-Policy`
* ウェブアプリマニフェスト
* `<link>`
CSP: script-src-attr
====================

HTTP の `Content-Security-Policy` (CSP) における **`script-src-attr`** ディレクティブは、JavaScript でインラインイベントハンドラーを指定する際に、有効なソースを指定します。

 このディレクティブは `onclick` のようなインラインスクリプトイベントハンドラーに対してのみ、有効なソースを指定します。
 `<script>` 要素に直接読み込まれた URL や XSLT スタイルシートなど、スクリプト実行のきっかけとなる他の JavaScript ソースには適用されません。
 （有益なソースは `script-src` を使用してすべての JavaScript スクリプトソースに対して指定することも、 `script-src-elem` を使用して `<script>` 要素に対してのみ指定することも可能です。）


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

構文
--

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


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


`script-src-attr` は `script-src` と一緒に使用することができ、インラインハンドラーのチェックのために、このディレクティブを上書きすることができます。


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

### ソース

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

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

例
-

### 違反の場合

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


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


…実行すると、以下のインラインイベントハンドラーはブロックされ、読み込まれたり実行されたりしません。


```html
<button id="btn" onclick="doSomething()"></button>
```


一般に、インラインイベントハンドラーは `addEventListener` 呼び出しに置き換える必要があることに注意してください。


```js
document.getElementById("btn").addEventListener("click", doSomething);
```

仕様書
---

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

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

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

関連情報
----

* `Content-Security-Policy`
* `<script>`
* `script-src`
* `script-src-elem`
426 Upgrade Required
====================

HTTP の **`426 Upgrade Required`** クライアントエラーレスポンスコードは、サーバーが現在のプロトコルを使用してリクエストを実行することを拒否していることを示しますが、クライアントが別のプロトコルにアップグレードした後に発生する可能性があります。

サーバーはこのレスポンスとともに `Upgrade` ヘッダーを送信し、必要なプロトコルを示します。

ステータス
-----
```

426 Upgrade Required
```

例
-
```

HTTP/1.1 426 Upgrade Required
Upgrade: HTTP/2.0
Connection: Upgrade
Content-Length: 53
Content-Type: text/plain

This service requires use of the HTTP/2.0 protocol
```

仕様書
---

| 仕様書 | 題名 |
| --- | --- |
| RFC 7231, セクション 6.5.15: 426 Upgrade Required | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content |

関連情報
----

* `Upgrade`
* `101` `Switching Protocol`
100 Continue
============

HTTP **`100 Continue`** 情報ステータスレスポンスコードは、これまでのすべてが OK であり、クライアントが要求を続行するか、または要求がすでに終了している場合は無視することを示します。

サーバーが要求のヘッダーをチェックするようにするには、クライアントは最初の要求でヘッダーとして`Expect``: 100-continue` を送信し、本文を送信する前にレスポンスとして `100 Continue` ステータスコードを受け取ります。

ステータス
-----
```

100 Continue
```

仕様
--

| 仕様 | タイトル |
| --- | --- |
| RFC 7231, セクション 6.2.1: 100 Continue | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content |

ブラウザーの実装状況
----------

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

関連情報
----

* `Expect`
* `417`
417 Expectation Failed
======================

HTTP **`417 Expectation Failed`** クライアントエラーレスポンスコードは、リクエストの `Expect` ヘッダーに期待された値が設定されていなかったことを示します。

詳細は `Expect` ヘッダーを参照してください。

ステータス
-----
```

417 Expectation Failed
```

仕様
--

| 仕様書 | タイトル |
| --- | --- |
| RFC 7231, セクション 6.5.14: 417 Expectation Failed | Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content |

関連情報
----

* `Expect`