内容安全策略

上次更新日期: 2023年8月2日

内容安全策略 (CSP) 是一种用于限制网站上可允许使用哪些脚本和资源的方法。 例如,您可以使用 CSP 来阻止外部脚本在您的网站上执行操作。

建议不要将 CSP 和 Adobe Fonts 一起使用

虽然在同一页面上可以同时使用 CSP 和 Adobe 的 Web 字体,但我们不建议这样做。  CSP 策略不允许您为特定域中的脚本添加的内联样式设置例外。 如果您为样式指定了不安全内联异常,它将应用于来自所有域的所有样式。

Adobe Fonts 使用内联样式和字体作为数据 URI 来提供我们的服务,为这些内容设置异常会大大降低 CSP 提供的保护。 

使用 CSP

如果确实要使用 CSP,请遵循以下说明正确设置安全指令。 请注意,未能正确遵循这些说明可能会导致无意中违反 Web 字体服务使用条款

  1. 第一条指令是允许从 CDN (use.typekit.net) 处加载脚本:

    script-src 'self' use.typekit.net;
  2. 其次,您需要允许 use.typekit.net 中的样式表并指定不安全的内联,以允许所有域(包括 use.typekit.net)中的脚本使用内联样式。 正常运行字体事件功能需要进行此操作。

    style-src 'self' 'unsafe-inline' use.typekit.net;
  3. 最后,针对 p.typekit.net 中的图像的例外提出了要求。 字体加载使用该域的跟踪图像功能来计算字体的使用情况,并向字体公司支付使用其字体的相应费用。

    img-src 'self' p.typekit.net;
  4. 或者,您也可以为性能指标添加例外。 性能指标以随机时间间隔发送,用于监控字体网络的性能。

    connect-src performance.typekit.net

您应该将这些指令合并为一个策略,并在所有 HTTP 响应上设置“Content-Security-Policy”页眉。 为支持旧版本的 Chrome、Firefox 和 Safari,您还需要添加“X-Content-Security-Policy”和“X-WebKit-CSP”页眉。 更多详情,请参阅 W3C CSP 规范