Atlassian Widget 的 Strict Dynamic 和 CSP 问题
更新到 v3.3.0.beta1 后,我在使用内容安全策略 (CSP) 时遇到了一个问题。具体来说,我正尝试在容器的头部嵌入一个 Atlassian 小部件,该容器是在此次更新之前创建的。
这是我添加到头部的内容:
<script data-jsd-embedded nonce="{{content_security_policy_nonce}}" data-key="bla" data-base-url="https://jsd-widget.atlassian.com" src="https://jsd-widget.atlassian.com/assets/embed.js"></script>
我已确保包含 nonce,但遇到了以下错误:
embed.js:1 Refused to set the document's base URI to 'https://jsd-widget.atlassian.com/' because it violates the following Content Security Policy directive: "base-uri 'self'".
embed.js:1 Refused to load the script 'https://jsd-widget.atlassian.com/assets/iframe.js' because it violates the following Content Security Policy directive: "script-src 'nonce-YAnMdLzmoWqLis3WXiQKjxdHk' 'strict-dynamic'". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
此外,我在之前的帖子中看到一个建议,可以通过以下方式动态加载脚本:
javascript
var s = document.createElement('script');
s.src = "https://jsd-widget.atlassian.com/assets/embed.js";
document.body.appendChild(s);
但这似乎并没有解决问题。我显然对 strict-dynamic 在此上下文中的工作方式有所误解。
有人能帮我理解为什么会发生这些错误以及如何解决它们吗?任何指导都将不胜感激!