HTTP の Content-Security-Policy
: manifest-src
ディレクティブは、どのマニフェストがリソースに適用されるかを指定します。
CSP バージョン | 3 |
---|---|
ディレクティブ種別 | フェッチディレクティブ |
default-src による代替 |
あり。このディレクティブがない場合、ユーザーエージェントは default-src ディレクティブを探します。 |
構文
manifest-src
ポリシーには、1つ以上のソースが許可されています。
Content-Security-Policy: manifest-src <source>; Content-Security-Policy: manifest-src <source> <source>;
ソース
<source> は以下のうちの一つを取ることができます。
- <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 へのアクセスの試行に一致します。
- <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 属性を使用して指定することができます。 'unsafe-inline'
- インラインの
<script>
要素、javascript:
の URL、インラインイベントハンドラー、インライン<style>
要素のような、インラインリソースの使用を許可します。単一引用符が必要です。 'unsafe-eval'
- 文字列からコードを生成する
eval()
及び同様のメソッドの利用を許可します。単一引用符が必要です。 'none'
- 空のセットを参照します。つまり、一致する URL はありません。単一引用符が必要です。
- 'nonce-<base64-value>'
- 暗号化ノンス (一度だけ使われる数値) を使用する特定のインラインスクリプトのためのホワイトリストです。サーバーはポリシーを転送するたびに固有のノンスを生成する必要があります。リソースのポリシーを他の方法で回避することを難しくするため、推測できないノンスを提供することが重要です。例えば安全でないインラインスクリプトを参照してください。ノンスを指定すると、最近のブラウザーは、ノンスの対応がない古いブラウザーのために設定されている可能性がある
'unsafe-inline'
を無視するようになります。 - '<hash-algorithm>-<base64-value>'
- スクリプトまたはスタイルの sha256, sha384, sha512 の何れかのハッシュです。このソースは、ハッシュを生成するために使用する暗号化アルゴリズムと、スクリプトまたはスタイルのハッシュを base64 でエンコードしたものの二つの部分をダッシュで区切ったもので構成されます。ハッシュを生成するときは、 <script> または <style> タグを含めないようにし、大文字・小文字の区別と、ホワイトスペースの扱い (先頭や末尾のホワイトスペースを含む) に注意してください。例えば安全でないインラインスクリプトを参照してください。 CSP 2.0 では、これはインラインスクリプトにのみ適用されます。 CSP 3.0 では
script-src
で外部スクリプトが指定された場合にも利用できます。
例
違反例
この CSP ヘッダーがある場合、
Content-Security-Policy: manifest-src https://example.com/
以下の <link>
の各要素はブロックされ、読み込まれません。
<link rel="manifest" href="https://not-example.com/manifest">
仕様書
仕様書 | 状態 | 備考 |
---|---|---|
Content Security Policy Level 3 manifest-src の定義 |
草案 | 初回定義 |
ブラウザーの互換性
このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 https://github.com/mdn/browser-compat-data をチェックアウトしてプルリクエストを送信してください。
Update compatibility data on GitHub
デスクトップ | モバイル | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
manifest-src | Chrome 完全対応 あり | Edge 未対応 なし | Firefox 完全対応 41 | IE 未対応 なし | Opera 完全対応 あり | Safari 未対応 なし | WebView Android 完全対応 あり | Chrome Android 完全対応 あり | Firefox Android 完全対応 41 | Opera Android ? | Safari iOS 未対応 なし | Samsung Internet Android 完全対応 あり |
凡例
- 完全対応
- 完全対応
- 未対応
- 未対応
- 実装状況不明
- 実装状況不明