Content-Security-Policy: connect-src 指令
HTTP Content-Security-Policy
(CSP) 的 connect-src
指令限制了可以使用脚本接口加载的 URL。以下 API 受此指令控制:
<a>
元素中的ping
属性fetch()
fetchLater()
实验性XMLHttpRequest
WebSocket
EventSource
Navigator.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
>
规范
规范 |
---|
内容安全策略级别 3 # directive-connect-src |
浏览器兼容性
加载中…