Iubenda logo
Crie Agora

Documentação

Tabela de conteúdos

Como configurar sua Content Security Policy para a iubenda

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 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, Cookie Solution e Consent Solution, como você pode imaginar, no entanto, há uma correção simples.

Como corrigir conflitos entre seu CSP e a iubenda

Veja como listar nossa Política de Privacidade e Cookies, Termos e Condições, Cookie Solution e Consent Solution, para que eles possam trabalhar corretamente com seu CSP:

1. Adicione um ‘nonce’ aos scripts inline

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

Importante

Lembre-se que os nonces devem ser regenerados para cada solicitação de página e eles devem ser incontroláveis.

2. Coloque o domínio da iubenda na lista branca para scripts externos

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 *.consensu.org; 
  img-src *.iubenda.com data:

E pronto. Você pode encontrar mais informações sobre CSP e outros casos de uso em MDN Web Docs.