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 2016年11月.
HTTP の Content-Security-Policy (CSP) における connect-src ディレクティブは、スクリプトインターフェイスを使用して読み込むことができる URL を制限します。以下の API が制限の対象となります。
<a>のping属性fetch()fetchLater()ExperimentalXMLHttpRequestWebSocketEventSourceNavigator.sendBeacon()
メモ:
connect-src 'self' はすべてのブラウザーで websocket スキーマを解決するわけではありません。この問題に詳細情報があります。
| CSP バージョン | 1 |
|---|---|
| ディレクティブ種別 | フェッチディレクティブ |
default-src による代替 |
あり。このディレクティブがない場合、ユーザーエージェントは default-src ディレクティブを探します。
|
構文
http
Content-Security-Policy: connect-src 'none';
Content-Security-Policy: connect-src <source-expression-list>;
このディレクティブは、次のいずれかの値を指定することができます。
'none'-
この種類のリソースは読み込まれません。単一引用符は必須です。
<source-expression-list>-
ソース表現の値を空白で区切ったリストです。この種類のリソースは、指定されたソース表現のいずれかと一致した場合に読み込まれます。このディレクティブでは、以下のソース表現の値が適用できます。
例
>違反の場合
以下の CSP ヘッダーを指定した場合、
http
Content-Security-Policy: connect-src https://example.com/
以下の接続はブロックされ、読み込まれません。
html
<a ping="https://not-example.com">
<script>
const response = fetch("https://not-example.com/");
const xhr = new XMLHttpRequest();
xhr.open("GET", "https://not-example.com/");
xhr.send();
const ws = new WebSocket("wss://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> |
ブラウザーの互換性
Loading…