> ## Documentation Index
> Fetch the complete documentation index at: https://wiki.another-horizon.eu/llms.txt
> Use this file to discover all available pages before exploring further.

# 内容安全策略（CSP）配置

> 配置 CSP 标头，在严格安全策略（如反向代理、防火墙和受限网络）下允许加载 Mintlify 资源，同时保持安全性。

内容安全策略（CSP）是一项安全标准，通过控制网页可加载的资源来帮助防止跨站脚本（XSS）攻击。Mintlify 提供了默认的 CSP，可保护大多数站点。如果你在反向代理或防火墙后托管文档，并覆盖了默认的 CSP，则可能需要配置 CSP 标头以确保各项功能正常运行。

<div id="csp-directives">
  ## CSP 指令
</div>

以下 CSP 指令用于控制可加载的资源：

* `script-src`：控制可执行的脚本
* `style-src`：控制可加载的样式表
* `font-src`：控制可加载的字体
* `img-src`：控制可加载的图像、图标和徽标
* `connect-src`：控制可用于 API 调用和 WebSocket 连接的 URL
* `frame-src`：控制可在 frame 或 iframe 中嵌入的 URL
* `default-src`：未显式设置其他指令时的回退项

<div id="domain-whitelist">
  ## 域名白名单
</div>

| 域名                              | 用途                    | CSP 指令                      | 是否必需 |
| :------------------------------ | :-------------------- | :-------------------------- | :--- |
| `d4tuoctqmanu0.cloudfront.net`  | KaTeX CSS、字体          | `style-src`, `font-src`     | 必需   |
| `*.mintlify.dev`                | 文档内容                  | `connect-src`, `frame-src`  | 必需   |
| `*.mintlify.com`                | 控制台、API、分析代理          | `connect-src`               | 必需   |
| `leaves.mintlify.com`           | AI 助手 API             | `connect-src`               | 必需   |
| `d3gk2c5xim1je2.cloudfront.net` | 图标、图像、徽标              | `img-src`                   | 必需   |
| `d1ctpt7j8wusba.cloudfront.net` | Mint 版本与发行文件          | `connect-src`               | 必需   |
| `mintcdn.com`                   | 图像、网站图标               | `img-src`, `connect-src`    | 必需   |
| `*.mintcdn.com`                 | 图像、网站图标               | `img-src`, `connect-src`    | 必需   |
| `api.mintlifytrieve.com`        | 搜索 API                | `connect-src`               | 必需   |
| `cdn.jsdelivr.net`              | OG 图片的表情资源            | `script-src`, `img-src`     | 必需   |
| `fonts.googleapis.com`          | Google 字体             | `style-src`, `font-src`     | 可选   |
| `www.googletagmanager.com`      | Google Analytics/GTM  | `script-src`, `connect-src` | 可选   |
| `cdn.segment.com`               | Segment 分析            | `script-src`, `connect-src` | 可选   |
| `plausible.io`                  | Plausible 分析          | `script-src`, `connect-src` | 可选   |
| `us.posthog.com`                | PostHog 分析            | `connect-src`               | 可选   |
| `tag.clearbitscripts.com`       | Clearbit 追踪           | `script-src`                | 可选   |
| `cdn.heapanalytics.com`         | Heap 分析               | `script-src`                | 可选   |
| `chat.cdn-plain.com`            | Plain 聊天小部件           | `script-src`                | 可选   |
| `chat-assets.frontapp.com`      | Front 聊天小部件           | `script-src`                | 可选   |
| `browser.sentry-cdn.com`        | Sentry 错误监控           | `script-src`, `connect-src` | 可选   |
| `js.sentry-cdn.com`             | Sentry JavaScript SDK | `script-src`                | 可选   |

<div id="example-csp-configuration">
  ## 示例 CSP 配置
</div>

<Note>
  仅包含你实际使用的服务的 domain。删除你尚未为文档配置的任何 Analytics 相关 domain。
</Note>

```text wrap theme={null}
Content-Security-Policy:
default-src 'self';
script-src 'self' 'unsafe-inline' 'unsafe-eval' cdn.jsdelivr.net www.googletagmanager.com cdn.segment.com plausible.io
us.posthog.com tag.clearbitscripts.com cdn.heapanalytics.com chat.cdn-plain.com chat-assets.frontapp.com
browser.sentry-cdn.com js.sentry-cdn.com;
style-src 'self' 'unsafe-inline' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com;
font-src 'self' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com;
img-src 'self' data: blob: d3gk2c5xim1je2.cloudfront.net mintcdn.com *.mintcdn.com cdn.jsdelivr.net;
connect-src 'self' *.mintlify.dev *.mintlify.com d1ctpt7j8wusba.cloudfront.net mintcdn.com *.mintcdn.com
api.mintlifytrieve.com www.googletagmanager.com cdn.segment.com plausible.io us.posthog.com browser.sentry-cdn.com;
frame-src 'self' *.mintlify.dev;
```

<div id="common-configurations-by-proxy-type">
  ## 按代理类型划分的常见配置
</div>

大多数反向代理都支持添加自定义请求头。

<div id="cloudflare-configuration">
  ### Cloudflare 配置
</div>

创建一个 Response Header Transform 规则：

1. 在 Cloudflare 控制台，进入 **Rules > Overview**。
2. 选择 **Create rule > Response Header Transform Rule**。
3. 配置该规则：

* **Modify response header**：设置为 static
  * **Header name**：`Content-Security-Policy`
  * **Header value**：
    ```text wrap theme={null}
    default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' cdn.jsdelivr.net; style-src 'self' 'unsafe-inline' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com; font-src 'self' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com; img-src 'self' data: blob: d3gk2c5xim1je2.cloudfront.net mintcdn.com *.mintcdn.com cdn.jsdelivr.net; connect-src 'self' *.mintlify.dev *.mintlify.com d1ctpt7j8wusba.cloudfront.net mintcdn.com *.mintcdn.com api.mintlifytrieve.com; frame-src 'self' *.mintlify.dev;
    ```

4. 部署该规则。

<div id="aws-cloudfront-configuration">
  ### AWS CloudFront 配置
</div>

在 CloudFront 中添加一个响应标头策略：

```json theme={null}
{
"ResponseHeadersPolicy": {
    "Name": "MintlifyCSP",
    "Config": {
    "SecurityHeadersConfig": {
        "ContentSecurityPolicy": {
        "ContentSecurityPolicy": "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' cdn.jsdelivr.net; style-src 'self' 'unsafe-inline' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com; font-src 'self' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com; img-src 'self' data: blob: d3gk2c5xim1je2.cloudfront.net mintcdn.com *.mintcdn.com cdn.jsdelivr.net; connect-src 'self' *.mintlify.dev *.mintlify.com d1ctpt7j8wusba.cloudfront.net mintcdn.com *.mintcdn.com api.mintlifytrieve.com; frame-src 'self' *.mintlify.dev;",
        "Override": true
        }
      }
    }
  }
}
```

<div id="vercel-configuration">
  ### Vercel 配置
</div>

将以下内容添加到你的 `vercel.json`：

```json theme={null}
{
"headers": [
    {
    "source": "/(.*)",
    "headers": [
        {
        "key": "Content-Security-Policy",
        "value": "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' cdn.jsdelivr.net; style-src 'self' 'unsafe-inline' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com; font-src 'self' d4tuoctqmanu0.cloudfront.net fonts.googleapis.com; img-src 'self' data: blob: d3gk2c5xim1je2.cloudfront.net mintcdn.com *.mintcdn.com cdn.jsdelivr.net; connect-src 'self' *.mintlify.dev *.mintlify.com d1ctpt7j8wusba.cloudfront.net mintcdn.com *.mintcdn.com api.mintlifytrieve.com; frame-src 'self' *.mintlify.dev;"
        }
      ]
    }
  ]
}
```

<div id="troubleshooting">
  ## 疑难解答
</div>

在浏览器控制台中定位 CSP 违规：

1. 打开浏览器的开发者工具。
2. 切换到 **Console** 标签页。
3. 查找以下前缀的错误信息：
   * `Content Security Policy: The page's settings blocked the loading of a resource`
   * `Refused to load the script/stylesheet because it violates the following Content Security Policy directive`
   * `Refused to connect to because it violates the following Content Security Policy directive`
