aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/http/headers/content-security-policy/default-src
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
commit33058f2b292b3a581333bdfb21b8f671898c5060 (patch)
tree51c3e392513ec574331b2d3f85c394445ea803c6 /files/zh-cn/web/http/headers/content-security-policy/default-src
parent8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff)
downloadtranslated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip
initial commit
Diffstat (limited to 'files/zh-cn/web/http/headers/content-security-policy/default-src')
-rw-r--r--files/zh-cn/web/http/headers/content-security-policy/default-src/index.html151
1 files changed, 151 insertions, 0 deletions
diff --git a/files/zh-cn/web/http/headers/content-security-policy/default-src/index.html b/files/zh-cn/web/http/headers/content-security-policy/default-src/index.html
new file mode 100644
index 0000000000..01cbd8079d
--- /dev/null
+++ b/files/zh-cn/web/http/headers/content-security-policy/default-src/index.html
@@ -0,0 +1,151 @@
+---
+title: 'CSP: default-src'
+slug: Web/HTTP/Headers/Content-Security-Policy/default-src
+tags:
+ - 内容安全策略
+ - 安全
+ - 超文本传输协议
+translation_of: Web/HTTP/Headers/Content-Security-Policy/default-src
+---
+<div>{{HTTPSidebar}}</div>
+
+<p>在 HTTP 协议中,{{HTTPHeader("Content-Security-Policy")}} (CSP) 首部字段中的 <code><strong>default</strong></code><strong><code>-src</code></strong> 指令可以为其他 CSP 拉取指令({{Glossary("fetch directive", "fetch directives")}})提供备选项。对于以下列出的指令,假如不存在的话,那么用户代理会查找并应用 default-src 指令的值。</p>
+
+<ul>
+ <li>{{CSP("child-src")}}</li>
+ <li>{{CSP("connect-src")}}</li>
+ <li>{{CSP("font-src")}}</li>
+ <li>{{CSP("frame-src")}}</li>
+ <li>{{CSP("img-src")}}</li>
+ <li>{{CSP("manifest-src")}}</li>
+ <li>{{CSP("media-src")}}</li>
+ <li>{{CSP("object-src")}}</li>
+ <li>{{CSP("script-src")}}</li>
+ <li>{{CSP("style-src")}}</li>
+ <li>{{CSP("worker-src")}}</li>
+</ul>
+
+<table class="properties">
+ <tbody>
+ <tr>
+ <th scope="row">CSP 版本</th>
+ <td>1</td>
+ </tr>
+ <tr>
+ <th scope="row">指令类型</th>
+ <td>{{Glossary("Fetch directive")}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="语法">语法</h2>
+
+<p><code>default-src</code> 策略允许指定一个或多个源:</p>
+
+<pre class="syntaxbox">Content-Security-Policy: default-src &lt;source&gt;;
+Content-Security-Policy: default-src &lt;source&gt; &lt;source&gt;;
+</pre>
+
+<h3 id="源">源</h3>
+
+<p>&lt;source&gt; 可以是以下之一:</p>
+
+<dl>
+ <dt>&lt;host-source&gt;</dt>
+ <dd>以域名或者 IP 地址表示的主机名,外加可选的 URL 协议名(<a href="/en-US/docs/URIs_and_URLs">URL scheme</a>)以及端口号。站点地址中可能会包含一个可选的前置通配符(星号 '*'),同时也可以将通配符(也是'*')应用于端口号,表示在这个源中可以使用任意合法的端口号。<br>
+ 举例说明:
+ <ul>
+ <li><code>http://*.example.com:</code> 匹配从使用 http: 的 example.com 的任意子域的资源加载。</li>
+ <li><code>mail.example.com:443:</code>匹配对 mail.example.com 上的 443 端口号的访问。</li>
+ <li><code>https://store.example.com</code>: 匹配对使用了 https: 的 store.example.com 的访问。</li>
+ </ul>
+ </dd>
+ <dt>&lt;scheme-source&gt;</dt>
+ <dd>协议名如'http:' 或者 'https:'。<strong>必须带有冒号,不要有单引号</strong>。同时你还可以指定数据协议(data schema)(不推荐使用)。
+ <ul>
+ <li><code>data:</code> 允许 <a href="/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs"><code>data:</code> URIs</a> 作为内容的源<em>。这是不安全的。攻击者可以注入任意 data: URI 。不要轻易使用这种形式的源,尤其是脚本,绝对不要使用。</em></li>
+ <li><code>mediastream:</code> 允许 <a href="/en-US/docs/Web/API/MediaStream_API"><code>mediastream:</code> URIs</a> 作为内容的源<em>。</em></li>
+ <li><code>blob:</code> 允许 <a href="/en-US/docs/Web/API/Blob"><code>blob:</code> URIs</a> 作为内容的源<em>。</em></li>
+ <li><code>filesystem:</code> 允许 <a href="/en-US/docs/Web/API/FileSystem"><code>filesystem:</code> URIs</a> 作为内容的源<em>。</em></li>
+ </ul>
+ </dd>
+ <dt><code>'self'</code></dt>
+ <dd>指向与要保护的文件所在的源,包括相同的 URL scheme 与端口号。必须有单引号。一些浏览器会特意排除 blob 与 filesystem 。需要设定这两种内容类型的站点可以在 Data 属性中进行设定。</dd>
+ <dt><code>'unsafe-inline'</code></dt>
+ <dd>允许使用内联资源,例如内联 {{HTMLElement("script")}}  元素(javascript: URL)、内联事件处理器以及内联 {{HTMLElement("style")}} 元素。必须有单引号。</dd>
+ <dt><code>'unsafe-eval'</code></dt>
+ <dd>允许使用 eval() 以及相似的函数来从字符串创建代码。必须有单引号。</dd>
+ <dt><code>'none'</code></dt>
+ <dd>不允许任何内容。 必须有单引号。</dd>
+ <dt>'nonce-&lt;base64值&gt;'</dt>
+ <dd>特定使用一次性加密内联脚本的白名单。服务器必须在每一次传输政策时生成唯一的一次性值。否则将存在绕过资源政策的可能。请参见<a href="/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src#Unsafe_inline_script">不安全的内联脚本</a>查看示例。</dd>
+ <dt>&lt;hash-source&gt;</dt>
+ <dd>使用 sha256、sha384 或 sha512 编码过的内联脚本或样式。其由用短划线分隔的两部分组成: 用于创建哈希的加密算法, 以及脚本或样式base64编码的哈希值。当生成哈希值的时候,不要包含 &lt;script&gt; 或 &lt;style&gt; 标签,同时注意字母大小写与空格——包括首尾空格——都是会影响生成的结果的。请参见<a href="/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src#Unsafe_inline_script">不安全的内联脚本</a>。</dd>
+ <dt>'strict-dynamic'</dt>
+ <dd>strict-dynamic 指定对于含有标记脚本(通过附加一个随机数或散列)的信任,应该传播到由该脚本加载的所有脚本。与此同时,任何白名单以及源表达式例如 'self'  或者  'unsafe-inline' 都会被忽略。参见 <a href="/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src#strict-dynamic">script-src</a> 。</dd>
+</dl>
+
+<h2 id="示例">示例</h2>
+
+<h3 id="不继承_default-src_的情况"><code><font face="x-locale-heading-primary, zillaslab, Palatino, Palatino Linotype, x-locale-heading-secondary, serif">不继承 </font>default-src 的情况</code></h3>
+
+<p>假如设定了其他指令,那么 <code>default-src</code> 不会对它们起作用。这个首部</p>
+
+<pre class="brush: bash">Content-Security-Policy: default-src 'self'; script-src https://example.com</pre>
+
+<p>与下列代码等价:</p>
+
+<pre class="brush: bash">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'</pre>
+
+<h2 id="规范">规范</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">规范</th>
+ <th scope="col">状态</th>
+ <th scope="col">注释</th>
+ </tr>
+ <tr>
+ <td>{{specName("CSP 3.0", "#directive-default-src", "default-src")}}</td>
+ <td>{{Spec2('CSP 3.0')}}</td>
+ <td>Added <code>frame-src</code>, <code>manifest-src</code> and <code>worker-src</code> as defaults.</td>
+ </tr>
+ <tr>
+ <td>{{specName("CSP 1.1", "#directive-default-src", "default-src")}}</td>
+ <td>{{Spec2('CSP 1.1')}}</td>
+ <td>Initial definition.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="浏览器兼容性">浏览器兼容性</h2>
+
+<p class="hidden">此页中的兼容性表格从已构建的数据中生成。若您想贡献数据,请前往<a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>并向我们发送Pull request。</p>
+
+<p>{{Compat("http.headers.csp.default-src")}}</p>
+
+<h2 id="另请参阅">另请参阅</h2>
+
+<ul>
+ <li>{{HTTPHeader("Content-Security-Policy")}}</li>
+ <li>{{CSP("connect-src")}}</li>
+ <li>{{CSP("font-src")}}</li>
+ <li>{{CSP("frame-src")}}</li>
+ <li>{{CSP("img-src")}}</li>
+ <li>{{CSP("manifest-src")}}</li>
+ <li>{{CSP("media-src")}}</li>
+ <li>{{CSP("object-src")}}</li>
+ <li>{{CSP("script-src")}}</li>
+ <li>{{CSP("style-src")}}</li>
+ <li>{{CSP("worker-src")}}</li>
+</ul>