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

CSP 指令

以下 CSP 指令用于控制可加载的资源:
  • script-src: 控制可执行哪些脚本
  • style-src: 控制可加载哪些样式表
  • font-src: 控制可加载哪些字体
  • img-src: 控制可加载哪些图片、图标和标识
  • connect-src: 控制可用于 API 调用和 WebSocket 连接的 URL
  • frame-src: 控制可嵌入到 frame 或 iframe 的 URL
  • default-src: 作为未显式设置时其他指令的默认回退

域名白名单

CSP 配置示例

仅包含你使用的服务的域名。删除任何未在文档中配置的分析相关域名。

不同代理类型的常见配置

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

Cloudflare 配置

创建一个响应头转换规则(Response Header Transform Rule):
  1. 在 Cloudflare 控制台,前往 Rules > Overview
  2. 选择 Create rule > Response Header Transform Rule
  3. 配置该规则:
  • Modify response header:设置为 static
    • Header nameContent-Security-Policy
    • Header value
  1. 部署该规则。

AWS CloudFront 配置

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

Vercel 配置

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

故障排查

在浏览器控制台中定位 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