# Content-Security-Policy agora usa 'strict-dynamic'

**URL:** <https://meta.discourse.org/t/content-security-policy-now-uses-strict-dynamic/298172>\
**Category:** Announcements\
**Created:** [7 Março , 2024 15:24 UTC](https://meta.discourse.org/t/content-security-policy-now-uses-strict-dynamic/298172 "2024-03-07T15:24:39Z")\
**Posts on this page:** 1\
**Showing post:** 10

<div class="post-metadata">

**Author:** ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)\
**Post date:** [20 Agosto , 2024 12:39 UTC](https://meta.discourse.org/t/content-security-policy-now-uses-strict-dynamic/298172/10 "2024-08-20T12:39:50Z")

</div>

> [@merefield](#):
>
> Está acontecendo alguma mágica?

Sim!

O MDN tem uma [boa explicação](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src#strict-dynamic) e exemplos.

> A expressão de origem `'strict-dynamic'` especifica que a confiança explicitamente dada a um script presente na marcação, acompanhando-o com um nonce ou hash, será propagada a todos os scripts carregados por esse script raiz.

Portanto, desde que o script original seja confiável (via nonce), o navegador permite que ele carregue quaisquer outros scripts sem restrição. E então, como esses scripts são confiáveis, eles podem carregar mais!

* * *

Há uma ressalva, que é que os scripts não podem ser ‘inseridos pelo parser’. Isso impede que o strict-dynamic seja explorado para ataques XSS.

Portanto, por exemplo, isso seria ‘inserido pelo parser’ e seria bloqueado:

```js
document.head.appendChild("<script src='https://example.com/xss-attempt.js' />");

```

Mas, construir o elemento script programaticamente não envolve análise de HTML, é muito menos provável que seja um vetor XSS e, portanto, é permitido:

```js
const script = document.createElement("script");
script.src = "https://example.com/script.js"
document.head.appendChild(script);

```

^^ isso é essencialmente como `loadScript()` funciona

---

_[View the full topic](https://meta.discourse.org/t/content-security-policy-now-uses-strict-dynamic/298172)._
