6

我最近从 stripe.js v2 转移到了 stripe.js v3 / elements。作为其中的一部分,我收到了新的 CSP 错误。这些似乎不会导致条纹失败,但我想了解它们:

Content Security Policy: The page's settings blocked the loading of a resource at self ("script-src"). Source: ;undefined.
elements-inner-card-15fb9df8718486f330c3990dde96bfd7.html:1

Content Security Policy: The page's settings blocked the loading of a resource at self ("script-src"). Source: ;undefined.
controller-3984d4085075df939703ec0d22159407.html:1

两者elements-inner-card-15fb9df8718486f330c3990dde96bfd7.htmlcontroller-3984d4085075df939703ec0d22159407.html来自条纹。我不明白的script-srcundefined

  • 怎么script-src可能undefined?一个<script>元素通常有一个src,如果不是的话unsafe-inline。是什么undefined意思?

  • 如何修改我的 CSP 以允许 Stripe v3?

编辑:使用 LastPass 时,该错误似乎只发生在 Firefox 上。Chrome 不显示此错误,禁用插件的 Firefox 也不显示此错误。

4

1 回答 1

1

对于像我这样的人来说,解决方案与“禁用插件”不同。

上下文:我在 React 中使用条纹,我使用react-stripe-elements来做到这一点。我这样做时出现了 CSP 错误:

<form>
    {loading ? <Spinner /> : <CardElement /> }
</form>

似乎动态安装/卸载在那里并不顺利。我是这样改的:

<form>
    <div className={classnames({hidden: !loading})}><Spinner /></div>
    <div className={classnames({hidden: loading})}><CardElement /></div>
</form>

当然,使用相应的 CSS,hidden错误就消失了。

希望它可以帮助一些迷失的灵魂:)

于 2018-10-04T16:19:29.720 回答