拒绝加载字体“<URL>”,因为它违反了以下内容安全策略指令:"font-src 'none'"

Refused to load the font '<URL>' because it violates the following Content Security Policy directive: "font-src 'none'"

我对这个错误有很大的疑问,我似乎无法阻止它显示。

*免责声明:我还是个大三学生,对NextJS的了解还很深入,所以在问这个问题的过程中如果有错误请见谅。

我正在使用最新版本的 NextJS(在提问时),我正在将其部署到 vercel

我收到此错误信息,该错误信息被垃圾邮件发送了 50 次左右

我尝试过的东西。

1。我向 _app.tsx 中的 <Head /> 元素添加了一个元标记,看起来像这样

<meta
    http-equiv="Content-Security-Policy"
    content="font-src * 'unsafe-inline';"
/>

(我拼错了 content 属性 几次,它给了我一个错误,所以我知道它正在工作,我正在使用 `font-src * 'unsafe-inline' ,因为据说它允许所有来源) 但错误仍然存​​在

来源:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src

2。我将 headers 添加到 next.config.js

...
const securityHeaders = [
  {
    key: 'Content-Security-Policy',
    value: `font-src * 'unsafe-inline';`,
  },
]
module.exports = withImages({
  async headers() {
    return [
      {
        // Apply these headers to all routes in your application.
        source: '/:path*',
        headers: securityHeaders,
      },
    ]
  },
...

错误不断出现。如果我将此 header 设置为 font-src 'self'font-src https://js.stripe.com。我在这个上面得到了一个不同的错误,它指出 local 字体拒绝加载,因为它违反了 font-src https://js.stripe.com

来源:https://nextjs.org/docs/advanced-features/security-headers

3。我添加了 vercel.json

我的一位同事建议这可能是一个 vercel 错误,所以我将其添加到文件中

{
  "routes": [
    {
      "src": "/(.*)",
      "headers": {
        "content-security-policy-report-only": "font-src * 'unsafe-inline';"
      }
    }
  ]
}

来源:https://app.rapidsec.com/docs/deploying-csp

错误仍然存​​在

真题。

我应该继续尝试这些安全 header,还是 dead-end?它是一个 vercel 错误,还是一个 nextjs 错误,因为它只发生在服务器上?或者我应该尝试覆盖分配这些字体的 class 来绕过这个错误。 P.S。当我在错误中打开link时,它给了我Error 404,这是官方的条纹依赖stripe: "^8.195.0

最可能的解释是您的站点上已经设置了内容安全策略。所有内容都需要通过所有策略,因此添加另一个策略无济于事。您需要确定现有策略的设置位置并从“font-src 'none';”进行修改到“font-src js.stripe.com;”。

我认为您使用了错误的条带密钥来访问条带 api。 API 键标识调用 API 的应用程序或项目。因此,stripe api 无法识别您的应用程序

有时 chrome 扩展也会导致该错误

名为 Ultrawidify 的浏览器扩展程序导致了该问题。当它扫描网站上的视频时(为什么,我不知道。我认为它只适用于 youtube)它会尝试访问 stripe.com,因为它列在“选择要控制的网站”列表中。关闭该站点的扩展程序没有任何作用,它仍然出现该错误,但禁用它完全解决了问题,