Problem mit Strict Dynamic und CSP bei Atlassian Widget
Ich stoße nach dem Update auf v3.3.0.beta1 auf ein Problem mit der Content Security Policy (CSP). Insbesondere versuche ich, ein Atlassian-Widget in den Header meines Containers einzubetten, der vor diesem Update erstellt wurde.
Ich habe darauf geachtet, die Nonce einzufügen, stoße jedoch auf die folgenden Fehler:
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.
Zusätzlich bin ich in einem früheren Beitrag auf den Vorschlag gestoßen, das Skript dynamisch wie folgt zu laden:
var s = document.createElement('script');
s.src = "https://jsd-widget.atlassian.com/assets/embed.js";
document.body.appendChild(s);
Dies scheint das Problem jedoch nicht zu beheben. Mir ist eindeutig nicht klar, wie strict-dynamic in diesem Kontext funktionieren soll.
Kann mir jemand helfen zu verstehen, warum diese Fehler auftreten und wie ich sie beheben kann? Jede Hilfe wäre willkommen!
Interessanterweise habe ich mir gerade ein fast identisches Problem angesehen.
Ich kann ein ähnliches Problem auf der neuesten, kürzlich neu erstellten Version reproduzieren.
Ich erhalte:
[Nur Bericht] Das Laden des Skripts 'https://www.mytestsite.com/mini-profiler-resources/includes.js?v=116e2a6fd81c286e004e2a0afb03baa1' wurde verweigert, da es die folgende Content Security Policy-Direktive verletzt: „script-src 'nonce-ZSPIEwDBo6e07GuQMDkOFZerD' 'strict-dynamic'“. Beachten Sie, dass 'script-src-elem' nicht explizit festgelegt wurde, daher wird 'script-src' als Fallback verwendet.
Können Sie oder Sie einen Link zu einer Website teilen, auf der dieses Problem angezeigt wird? Ich schaue gerne kurz vorbei
Wenn Sie dies über ein Theme-Komponenten hinzugefügt haben, sollten Sie den Teil nonce= entfernen. Discourse fügt ihn automatisch hinzu (und ich glaube, wenn Sie ihn selbst hinzufügen, kann dies das automatische System beeinträchtigen)
Hallo David, vielen Dank.
Für die schnelle Antwort.
Der Code, den ich hinzufüge, ist <script data-jsd-embedded data-key="bla" data-base-url="https://jsd-widget.atlassian.com" src="https://jsd-widget.atlassian.com/assets/embed.js"></script>
Es scheint, dass das embed.js-Skript erfolgreich ausgeführt wird, sodass die Discourse-Seite funktioniert.
Es versucht jedoch, einen Same-Origin-Iframe zu erstellen, der „parser-inserted“-Skript-Tags enthält. Diese Art von Strategie ist nicht mit einem strikt-dynamischen CSP kompatibel.
Daher denke ich, dass dies etwas ist, das Atlassian beheben müsste. Ich bin auf dieses Problem in ihrem Tracker gestoßen, das relevant zu sein scheint (obwohl es nicht viele Details oder eine Lösung enthält ).