--- title: 'CSP: worker-src' slug: Web/HTTP/Headers/Content-Security-Policy/worker-src tags: - CSP - HTTP - セキュリティ - ディレクティブ - リファレンス translation_of: Web/HTTP/Headers/Content-Security-Policy/worker-src ---
{{HTTPSidebar}}

HTTP の {{HTTPHeader("Content-Security-Policy")}} (CSP) worker-src ディレクティブは、 {{domxref("Worker")}}, {{domxref("SharedWorker")}}, {{domxref("ServiceWorker")}} スクリプトの有効なソースを指定します。

CSP バージョン 3
ディレクティブ種別 {{Glossary("Fetch directive", "フェッチディレクティブ")}}
フォールバック

このディレクティブがない場合、ユーザーエージェントはワーカーの実行の管理のために、最初に {{CSP("child-src")}} ディレクティブ、次に {{CSP("script-src")}} ディレクティブ、最後に {{CSP("default-src")}} ディレクティブを探します。

Chrome 59 以降は {{CSP("child-src")}} ディレクティブを飛ばします。

Edge 17 は {{CSP("script-src")}} ディレクティブを飛ばします (bug)。

構文

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

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

ソース

{{page("Web/HTTP/Headers/Content-Security-Policy/default-src", "Sources")}}

違反の場合

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

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

{{domxref("Worker")}}, {{domxref("SharedWorker")}}, {{domxref("ServiceWorker")}} はブロックされ、読み込まれません。

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

仕様書

仕様書 状態 備考
{{specName("CSP 3.0", "#directive-worker-src", "worker-src")}} {{Spec2('CSP 3.0')}} 初回定義。

ブラウザーの対応

{{Compat("http.headers.csp.worker-src")}}

関連情報