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 协议,更多信息,请查看这个 issue

CSP 版本 1
指令类型 Fetch 指令
default-src 回落 是。如果没有此指令,用户代理将查找 default-src 指令。

语法

connect-src 策略可以允许一个或多个源:

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

<source> 可以是 CSP 源值列出来的任意一个。

注意,这套相同的值可以用于所有 fetch 指令(以及许多其他指令)。

示例

违规的案例

给定此 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

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
connect-src

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
Partial support
Partial support
Has more compatibility info.

兼容性备注

  • Firefox 23 之前,xhr-src 被用来代替 connect-src 指令,并且只用于限制 XMLHttpRequest 的使用。

参见