--- title: 'CSP: default-src' slug: Web/HTTP/Headers/Content-Security-Policy/default-src tags: - 内容安全策略 - 安全 - 超文本传输协议 translation_of: Web/HTTP/Headers/Content-Security-Policy/default-src ---
在 HTTP 协议中,{{HTTPHeader("Content-Security-Policy")}} (CSP) 首部字段中的 default-src 指令可以为其他 CSP 拉取指令({{Glossary("fetch directive", "fetch directives")}})提供备选项。对于以下列出的指令,假如不存在的话,那么用户代理会查找并应用 default-src 指令的值。
| CSP 版本 | 1 |
|---|---|
| 指令类型 | {{Glossary("Fetch directive")}} |
default-src 策略允许指定一个或多个源:
Content-Security-Policy: default-src <source>; Content-Security-Policy: default-src <source> <source>;
<source> 可以是以下之一:
http://*.example.com: 匹配从使用 http: 的 example.com 的任意子域的资源加载。mail.example.com:443:匹配对 mail.example.com 上的 443 端口号的访问。https://store.example.com: 匹配对使用了 https: 的 store.example.com 的访问。data: 允许 data: URIs 作为内容的源。这是不安全的。攻击者可以注入任意 data: URI 。不要轻易使用这种形式的源,尤其是脚本,绝对不要使用。mediastream: 允许 mediastream: URIs 作为内容的源。blob: 允许 blob: URIs 作为内容的源。filesystem: 允许 filesystem: URIs 作为内容的源。'self''unsafe-inline''unsafe-eval''none'不继承 default-src 的情况假如设定了其他指令,那么 default-src 不会对它们起作用。这个首部
Content-Security-Policy: default-src 'self'; script-src https://example.com
与下列代码等价:
Content-Security-Policy: connect-src 'self';
font-src 'self';
frame-src 'self';
img-src 'self';
manifest-src 'self';
media-src 'self';
object-src 'self';
script-src https://example.com;
style-src 'self';
worker-src 'self'
| 规范 | 状态 | 注释 |
|---|---|---|
| {{specName("CSP 3.0", "#directive-default-src", "default-src")}} | {{Spec2('CSP 3.0')}} | Added frame-src, manifest-src and worker-src as defaults. |
| {{specName("CSP 1.1", "#directive-default-src", "default-src")}} | {{Spec2('CSP 1.1')}} | Initial definition. |
{{Compat("http.headers.csp.default-src")}}