CSP: connect-src
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since August 2016.
HTTP の Content-Security-Policy
(CSP) における connect-src
ディレクティブは、スクリプトインターフェイスを使用して読み込むことができる URL を制限します。以下の API が制限の対象となります。
メモ: 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
互換性のメモ
- Firefox 23 以前では、
xhr-src
がconnect-src
ディレクティブの代わりに、XMLHttpRequest
を制限するだけのために使用されていました。
関連情報
Content-Security-Policy
<a>
のping
ement/a#ping) 属性fetch()
XMLHttpRequest
WebSocket
EventSource