Este guia é para administradores de sites que usam uma Content Security Policy (Política de Segurança de Conteúdo) (CSP) em seu site.
Como um CSP permite que os administradores de sites especifiquem quais domínios o navegador deve considerar como fontes válidas de scripts executáveis, um navegador compatível com CSP só executará scripts carregados em arquivos de origem recebidos desses domínios listados em branco, ignorando todos os outros scripts.
Isso pode causar conflitos com nossa Política de Privacidade e Cookies, Termos e Condições, Privacy Controls and Cookie Solution e Consent Database, como você pode imaginar, no entanto, há uma correção simples.
Veja como listar nossa Política de Privacidade e Cookies, Termos e Condições, Privacy Controls and Cookie Solution e Consent Database, para que eles possam trabalhar corretamente com seu CSP:
Em primeiro lugar, você precisará usar um nonce criptográfico (número usado uma vez), dando uma script
tag da iubenda um atributo nonce
. O valor nonce
deve corresponder a um na lista de fontes confiáveis. Por exemplo:
<script type="text/javascript" nonce="EDNnf03nceIOfn39fn3e9h3sdfa">
//iubenda snippet
</script>
Agora adicione o nonce à sua diretiva script-src
, acrescentada a palavra-chave nonce-
:
Content-Security-Policy: script-src 'nonce-EDNnf03nceIOfn39fn3e9h3sdfa'
Por exemplo, no caso do Privacy Controls and Cookie Solution, a implementação seria algo parecido com isso:
<script type="text/javascript" nonce="EDNnf03nceIOfn39fn3e9h3sdfa">
var _iub = _iub || [];
_iub.csConfiguration = {
"lang": "en",
"siteId": 12345678
"cookiePolicyId": 12345678
"banner": {
"position": "float-top-center",
"acceptButtonDisplay": true,
"customizeButtonDisplay": true
}
};
</script>
<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>
Por favor, note que o nonce foi adicionado apenas ao script inline. Veremos como lidar com scripts externos na próxima etapa.
Lembre-se que os nonces devem ser regenerados para cada solicitação de página e eles devem ser incontroláveis.
Agora você precisa permitir conteúdo do domínio e subdomínios da iubenda para que os scripts externos possam ser carregados a partir daí. Veja como configurar a Content Security Policy:
Content-Security-Policy:
default-src 'self';
script-src 'self' *.iubenda.com 'nonce-EDNnf03nceIOfn39fn3e9h3sdfa' 'unsafe-eval';
connect-src *.iubenda.com;
style-src 'unsafe-inline' *.iubenda.com;
frame-src *.iubenda.com;
img-src *.iubenda.com data:
E pronto. Você pode encontrar mais informações sobre CSP e outros casos de uso em MDN Web Docs.