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

Content Security Policy引发Safari/Firefox中GET、POST请求重复问题

CSP导致请求重复提交的问题并非个例

你遇到的CSP引发POST/GET请求重复提交的问题并非个例,不少开发者在配置Content Security Policy后都碰到过类似情况,尤其是在Firefox和Safari浏览器中。

这类问题的常见诱因包括:

  • 浏览器CSP违规重试机制:当页面资源触发CSP拦截时,部分浏览器会自动重试请求,极端情况下会连带触发页面内的表单提交或重复执行GET请求逻辑。
  • unsafe-inline指令的浏览器兼容性差异:虽然你在script-src和style-src中配置了unsafe-inline,但不同浏览器对该指令的解析和兼容存在细节差异,某些场景下仍会判定为违规,进而触发重试。
  • 第三方资源加载异常:配置中包含的Stripe、Google Analytics、Bing等第三方域名资源,如果加载时触发CSP拦截,浏览器的重试行为可能会意外重复页面的主请求。

结合你的CSP配置,建议从以下方向排查:

  1. 查看浏览器CSP违规日志:在Firefox和Safari的开发者工具控制台中,筛选CSP相关报错,定位具体触发拦截的资源,这是找到重复请求根源的核心步骤。
  2. 逐步移除第三方域名测试:临时从img-src、script-src等指令中移除*.bing.com或checkout.stripe.com这类第三方源,观察重复请求是否消失,缩小问题范围。
  3. 替换unsafe-inline为哈希/非ce:如果业务允许,建议将unsafe-inline替换为页面内脚本/样式的哈希值或随机生成的非ce(nonce),这能减少浏览器兼容性问题,降低违规触发概率。

你的web.config中的CSP配置如下:

<add name="Content-Security-Policy" value="  default-src 'self';
  img-src 'self' *.stripe.com *.bing.com;
  connect-src 'self' *.google-analytics.com checkout.stripe.com;
  frame-src 'self' checkout.stripe.com;
  script-src 'self' 'unsafe-inline' *.google-analytics.com *.googletagmanager.com checkout.stripe.com *.bing.com;
  style-src 'self' 'unsafe-inline' *.googleapis.com;
  font-src 'self' *.gstatic.com"  />

内容的提问来源于stack exchange,提问作者EamonnM

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:11:02