You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vercel部署时的内容安全策略(CSP)错误求助

Vercel部署时的内容安全策略(CSP)错误求助

兄弟,我看你这是Vercel部署后CSP配置没生效的问题,我之前也踩过类似的坑,给你几个靠谱的解决思路:

首先,你在Express的index.js里通过中间件设置CSP头的方式,在Vercel环境里经常会不生效——因为Vercel本身有一套自己的响应头管理机制,很容易覆盖掉你通过Express中间件设置的内容。

几个可行的解决方向:

  • 改用Vercel专属配置文件设置CSP
    直接在项目根目录新建或修改vercel.json文件,用headers字段来配置CSP,这是Vercel官方推荐的方式,可靠性更高。给你个示例配置,你可以根据自己的需求调整:

    {
      "headers": [
        {
          "source": "/(.*)",
          "headers": [
            {
              "key": "Content-Security-Policy",
              "value": "default-src 'self'; script-src 'self' cdn.example.com https://vercel.live; img-src 'self' img.example.com; style-src 'self';"
            }
          ]
        }
      ]
    }
    

    把你需要的资源域名对应加到各个规则里就行,比如你之前用到的cdn.example.com这些。

  • 先修复代码里的语法错误
    你之前写的中间件代码最后多了个多余的双引号:next();",这个语法错误会导致整个中间件跑不起来,先把这个小问题改掉,说不定改完之后中间件就正常生效了。

  • 检查中间件的执行顺序
    如果你还是想通过Express中间件来设置,一定要确保这个CSP中间件是所有路由和其他中间件之前被注册的,不然后面的中间件可能会直接覆盖你设置的响应头。

另外还有个小提醒:如果Vercel Live的脚本用到了内联代码或者eval,那你可能还要在script-src里加上'unsafe-inline'或者'unsafe-eval'(不过能不加就尽量不加,实在没办法再用)。

备注:内容来源于stack exchange,提问作者Javeria kanwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 16:09:31