CSP: connect-src

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

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

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

構文

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

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

ソース

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

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

違反の場合

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

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

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

<a ping="https://not-example.com">

<script>
  var xhr = new XMLHttpRequest();
  xhr.open('GET', 'https://not-example.com/');
  xhr.send();

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

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

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

仕様書

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

ブラウザーの互換性

BCD tables only load in the browser

互換性のメモ

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

関連情報