Content-Security-Policy: connect-src 指令

Baseline 已廣泛支援

此功能已得到良好確立,並在許多裝置和瀏覽器版本中都可使用。自 ⁨2016 年 11 月⁩以來,它已在所有瀏覽器中可用。

HTTP Content-Security-Policy (CSP) 的 connect-src 指令限制了可以使用指令碼介面載入的 URL。以下 API 受此指令控制:

注意: 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
>

規範

規範
內容安全策略級別 3
# directive-connect-src

瀏覽器相容性

另見