Errore CSP durante l'aggiunta di uno script tramite un componente tema

Problema con Strict Dynamic e CSP sul widget Atlassian

Sto riscontrando un problema con la Content Security Policy (CSP) dopo l’aggiornamento alla versione v3.3.0.beta1. Nello specifico, sto cercando di incorporare un widget Atlassian nell’intestazione del mio contenitore, creato prima di questo aggiornamento.

Ecco cosa ho aggiunto all’intestazione:

<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>

Ho fatto in modo di includere il nonce, ma sto riscontrando i seguenti errori:

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.

Inoltre, ho trovato un suggerimento in un post precedente per caricare dinamicamente lo script in questo modo:

var s = document.createElement('script');
s.src = "https://jsd-widget.atlassian.com/assets/embed.js";
document.body.appendChild(s);

Tuttavia, questo non sembra risolvere il problema. Mi sfugge chiaramente qualcosa su come strict-dynamic dovrebbe funzionare in questo contesto.

Qualcuno può aiutarmi a capire perché si verificano questi errori e come potrei risolverli? Qualsiasi suggerimento sarebbe apprezzato!

3 Mi Piace

È buffo, stavo giusto esaminando un problema quasi identico.

Posso riprodurre un problema simile sull’ultima versione che è stata recentemente ricompilata.

Sto ricevendo:

[Report Only] Refused to load the script 'https://www.mytestsite.com/mini-profiler-resources/includes.js?v=116e2a6fd81c286e004e2a0afb03baa1' because it violates the following Content Security Policy directive: "script-src 'nonce-ZSPIEwDBo6e07GuQMDkOFZerD' 'strict-dynamic'". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
3 Mi Piace

Qualcuno di voi può condividere un link a un sito che mostra questo problema? Sono felice di dare una rapida occhiata :occhi:

Se hai aggiunto questo tramite componenti del tema, dovresti rimuovere la parte nonce=. Discourse la aggiungerà automaticamente (e penso che aggiungerla tu stesso possa interrompere il sistema automatico)

3 Mi Piace

Per chiudere il cerchio - io e @merefield ne abbiamo discusso via PM e l’abbiamo ricondotto a un problema specifico di “solo segnalazione”. Correzione qui: FIX: Mini-profiler CSP nonce when in report-only mode by davidtaylorhq · Pull Request #28664 · discourse/discourse · GitHub

Quindi sembra che questo sia un problema diverso da quello che sta riscontrando @devops1

4 Mi Piace

Ciao David, grazie mille.
Per la rapida risposta

Il codice che sto aggiungendo è
<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>

Ho rimosso il nonce come richiesto.

Questo è il sito https://onlinecommunity.stroke.org.uk/
Ho attivato il content security policy report only

2 Mi Piace

Il componente del tema è abilitato? Non vedo alcuno script Atlassian quando controllo in dev-tools

1 Mi Piace

Penso che ora dovrebbe funzionare, ho trovato lo script nel codice sorgente della pagina.

2 Mi Piace

Sembra che lo script embed.js venga eseguito correttamente, quindi il lato Discourse funziona.

Tuttavia, sta quindi tentando di creare un iframe same-origin, che include tag di script ‘parser-inserted’. Questo tipo di strategia non è compatibile con una CSP strict-dynamic.

Quindi penso che questo sia qualcosa che Atlassian dovrebbe correggere. Mi sono imbattuto in questo problema sul loro tracker che sembra pertinente (anche se non ha molti dettagli, né una risoluzione :cry:)

2 Mi Piace

Grazie mille per aver esaminato il problema per me, David.

2 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.