title | slug |
---|---|
CSP: connect-src |
Web/HTTP/Headers/Content-Security-Policy/connect-src |
{{HTTPSidebar}}
HTTP {{HTTPHeader("Content-Security-Policy")}}(内容安全策略,CSP)中的 connect-src
指令用于限制通过使用脚本接口加载的 URL。其中受限制的 API 如下:
- {{HTMLElement("a")}}
ping
- {{domxref("fetch()")}}
- {{domxref("XMLHttpRequest")}}
- {{domxref("WebSocket")}}
- {{domxref("EventSource")}}
- {{domxref("Navigator.sendBeacon()")}}
Note
并不是所有浏览器都能将 connect-src 'self'
解析为 websocket 协议,更多信息,请查看这个 issue。
CSP 版本 | 1 |
---|---|
指令类型 | {{Glossary("Fetch directive","Fetch 指令")}} |
{{CSP("default-src")}} 回落 |
是。如果没有此指令,用户代理将查找 default-src 指令。
|
connect-src 策略可以允许一个或多个源:
Content-Security-Policy: connect-src <source>;
Content-Security-Policy: connect-src <source> <source>;
<source>
可以是 CSP 源值列出来的任意一个。
注意,这套相同的值可以用于所有 {{Glossary("fetch directive", "fetch 指令")}}(以及许多其他指令)。
给定此 CSP 标头:
Content-Security-Policy: connect-src https://example.com/
以下连接被禁止并且将不会加载:
<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
>
{{Specifications}}
{{Compat}}
- Firefox 23 之前,
xhr-src
被用来代替connect-src
指令,并且只用于限制 {{domxref("XMLHttpRequest")}} 的使用。
- {{HTTPHeader("Content-Security-Policy")}}
- {{HTMLElement("a")}}
ping
- {{domxref("fetch()")}}
- {{domxref("XMLHttpRequest")}}
- {{domxref("WebSocket")}}
- {{domxref("EventSource")}}