n:nonce uvnitř snippetu po překreslení a kolize s n:nonce mimo snippet

radas
Člen | 220
+
+1
-

Ahoj,
řeším situaci, kdy mám uvnitř snippetu kousek javascriptu, který se má vykonat při jeho překreslení. Používám CSP a tedy makro n:nonce.

<div n:snippet="test">
  <script n:nonce type="text/javascript">...</script>
</div>

Ten snippet je část Kdyby/FormsReplicatoru.
Zároveň mám ale n:nonce i v šabloně nad snippetem (Google Analytics).

Problém je ten, že při AJAXovém překreslení toho snippetu se vytvoří nový hash nonce a prohlížeč pak zablokuje všechen JS kód mimo ten snippet, jelikož už je hash nonce jiný (z ajaxového HTTP požadavku).

Nevíte někdo prosím, co s tím?

Díky.

radas
Člen | 220
+
0
-

Tak mě napadlo v tom snippetu odstranit ze <script> n:nonce a do CSP v HTTP hlavičce přidat pro script-src ‚sha256-…‘.

David Grudl
Nette Core | 8074
+
0
-

Pro nejnovější verze prohlížečů je řešením vyhodit nonce ze snippetu a do CSP přidat script-src 'strict-dynamic'.