我试图整合Stripe,但面临以下问题。
拒绝加载脚本'https://js.stripe.com/v3/‘,因为它违反了以下内容安全策略指令:" script -src 'self’‘不安全-eval’“。请注意,“script-src-elem”没有显式设置,因此“script-src”用作回退。
content_security_policy
更改为"script-src 'self' https://js.stripe.com/v3/; object-src 'self' "
,但它在控制台中给了我这个错误。Uncaught :拒绝将字符串计算为JavaScript,因为在以下内容安全策略指令中,‘不安全-eval’是不允许的脚本来源:" script -src 'self‘https://js.stripe.com/v3/“。
content_scripts
,但是它给了我这个错误,并且不允许我导入zip文件,同时说无法为内容脚本加载javascript '‘。
我怎样才能克服这个问题?是否有可能将Stripe集成到铬扩展中,因为Stripe只通过https
工作,而扩展则使用chrome://
。
发布于 2021-07-09 11:36:05
@EndersJeesh提供的答案适用于带有清单版本2的Chrome扩展。
我想知道它是否会在清单3版本中停止工作:
https://developer.chrome.com/docs/extensions/mv3/intro/mv3-migration/#remotely-hosted-code
远程托管代码表示您将无法加载远程托管代码,因此我设想加载https://js.stripe.com/v3是不可能的。
最好的解决方案是将所有Stripe代码嵌入到扩展中,但是这个Stripe代码没有npm包。
如有任何来自@EndersJeesh或其他人的评论,将不胜感激。
发布于 2020-05-29 17:08:34
我遇到了这些和随后的几个问题,将条纹集成到一个铬扩展中。
解释:
我先说出我认为发生了什么。使用条带反应库,我相信它们在某个地方有一个内联的js调用,从而导致了您正在看到的关于js.stripe.com
的错误。我认为可以通过将unsafe-inline
添加到content_security_policy
中来解决这个问题,但这不会由每个扩展CSP的铬扩展来执行。
解决方案:
下面是我所做的各种事情(解决一个问题通常导致不得不解决下一组错误)。
constent_security_policy
设置为"content_security_policy": "script-src 'self' https://js.stripe.com/v3; object-src 'self';"
index.html
文件如下所示:<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://js.stripe.com/v3" async></script>
</head>
<body>
<div id="modal-window"></div>
</body>
</html>
这解决了第一组与您的错误相匹配的问题,但也导致了下一组问题:
Refused to frame ... because it violates the following Content Security Policy directive: "frame-src"...
周围碰到了一系列错误,因此我将以下内容添加到content_security_policy
中来修复这些错误:frame-src https://js.stripe.com/v3
因此,我的content_security_policy
的最终版本如下:
"content_security_policy": "script-src 'self' https://js.stripe.com/v3; object-src 'self'; frame-src https://js.stripe.com/v3"
我希望这样做是为了你。我花了好几个小时才把这一切都解决了。
https://stackoverflow.com/questions/57887703
复制相似问题