Passar para o conteúdo principal

Resolvendo erros de Content Security Policy (CSP)

Use este artigo para identificar, corrigir e gerenciar erros de Content Security Policy (CSP) que estão bloqueando recursos do Intercom no seu site. CSP é um recurso de segurança do navegador que controla quais recursos externos podem ser carregados.

Escrito por Dawn

O que são erros de CSP?

CSP é um recurso de segurança do navegador que controla quais recursos externos podem ser carregados — se configurado de forma muito restritiva, pode impedir que o Intercom Messenger, artigos do Help Center, imagens, Product Tours e mídia sejam carregados corretamente.

Isso pode interromper funcionalidades importantes e causar problemas como:

  • Uploads de imagem bloqueados: Imagens não podem ser carregadas em Product Tours ou no Messenger.

  • Product Tours não responsivos: Alterações feitas em um Product Tour não são salvas.

  • Visuais quebrados: Componentes do Intercom, como logos, podem aparecer como imagens quebradas.

  • Problemas no Help Center: Artigos podem aparecer em branco ou parcialmente renderizados, ou podem ocorrer carregamentos infinitos.

Nota: Este artigo é relevante se você instalou o Intercom Messenger ou qualquer produto Intercom JS no seu site (incluindo Product Tours, Surveys, Checklists e News). Se você usa o Help Center hospedado independente do Intercom (ex: help.yourco.com), o Intercom gerencia seu próprio CSP e a política do seu site não se aplica lá. Atualizar seu CSP requer acesso à configuração do servidor ou aos cabeçalhos de resposta HTTP — se você não gerencia diretamente a infraestrutura do seu site, compartilhe este artigo com sua equipe de desenvolvimento ou departamento de TI.


Como identificar erros de CSP

Para confirmar que o CSP está causando problemas com o Intercom no seu site, você precisará verificar o console de desenvolvedor do seu navegador.

  1. Abra as ferramentas de desenvolvedor no seu navegador (normalmente pressionando F12 ou clicando com o botão direito e selecionando Inspecionar).

  2. Navegue até a aba Console.

  3. Reproduza o problema no seu site, por exemplo, tentando enviar uma imagem ou salvar um Product Tour.

  4. Procure mensagens de erro em vermelho no console indicando uma violação de CSP. Essas mensagens frequentemente mencionam requisições bloqueadas para domínios do Intercom (ex: uploads.intercomcdn.com, *.intercom.io) e a diretiva CSP específica que causou o bloqueio, como connect-src ou img-src. Exemplo de erro: Recusado o carregamento do script 'https://widget.intercom.io' porque viola a seguinte diretiva de Content Security Policy: "script-src 'self'".


Como resolver erros de CSP

Para resolver esses erros, você precisará atualizar a configuração do CSP do seu site para permitir recursos dos domínios necessários do Intercom.

1. Atualize suas diretivas CSP

  • Localize a diretiva com erro: No erro do console de desenvolvedor, identifique qual diretiva causou a restrição (ex: img-src).

  • Adicione os domínios do Intercom à lista de permissões: Adicione as URLs necessárias do Intercom às diretivas relevantes na configuração CSP do seu site.

Importante: Normalmente, você precisará adicionar os domínios do Intercom às seguintes diretivas:

  • connect-src: Para funcionalidades principais.

  • img-src: Para imagens e anexos.

  • media-src: Para recursos de mídia.

Os domínios a adicionar são *.intercomcdn.com, *.intercom.io e *.intercom-chat.com (necessário para a conexão websocket ao vivo do Messenger — não coberto pelo curinga *.intercom.io). Para a lista de domínios mais atualizada, veja Using Intercom with Content Security Policy.

Além disso, inclua intercom-sheets.com na diretiva frame-src para garantir o carregamento correto dos iframes do visualizador de artigos.

Nota: Se os artigos carregam corretamente no seu Help Center independente, mas aparecem em branco ou não são renderizados quando abertos dentro do Messenger, a causa mais provável é uma incompatibilidade de CSP. O Messenger renderiza artigos em um iframe — se sua política bloquear frame-src intercom-sheets.com ou connect-src *.intercom.io, o visualizador de artigos dentro do Messenger falhará mesmo quando o restante do Messenger carregar. Adicione intercom-sheets.com à sua diretiva frame-src para resolver isso.

2. Revise os cabeçalhos de segurança

Cabeçalhos excessivamente restritivos como X-Frame-Options ou configurações CSP de frame-ancestors também podem impactar a funcionalidade do Intercom. Revise essas configurações e ajuste conforme necessário.

3. Verifique as configurações de rede

Certifique-se de que as configurações de rede ou firewall permitem conexões de saída para os servidores do Intercom. Pode ser necessário pedir à sua equipe de TI para adicionar os domínios necessários à lista de permissões.

4. Teste suas alterações

Após atualizar a configuração do seu CSP:

  • Recarregue as páginas afetadas no seu site e verifique se os recursos do Intercom agora funcionam corretamente.

  • Monitore o console de desenvolvedor para garantir que não apareçam novas violações de CSP.

  • Faça um hard refresh no seu navegador para limpar os ativos em cache após fazer alterações no CSP.

    Se os recursos do Intercom ainda não funcionarem após um hard refresh, reabra a aba Console e verifique se há erros de violação de CSP restantes. Cada nova mensagem de erro indicará a próxima diretiva ou domínio a adicionar — repita o ciclo de atualização e teste até que não apareçam mais violações.


Quais recursos do Intercom são afetados por erros de CSP?

Diferentes recursos do Intercom são bloqueados por diferentes diretivas CSP. A tabela abaixo relaciona cada recurso do Intercom com seus sintomas comuns, a diretiva CSP que o bloqueia e os domínios a adicionar à lista de permissões.

Recurso do Intercom

Sintomas

Diretiva bloqueada

Domínio(s) para adicionar à lista de permissões

Messenger (widget de chat)

Widget não carrega ou está invisível

script-src, connect-src

widget.intercom.io, js.intercomcdn.com, *.intercom-chat.com, api-iam.intercom.io (US), api-iam.eu.intercom.io (EU), api-iam.au.intercom.io (AU)

Help Center

Artigos aparecem em branco ou não carregam, inclusive quando visualizados dentro do espaço Help do Messenger

frame-src, connect-src

intercom-sheets.com, *.intercom.io

Uploads de imagens e anexos

Imagens não são enviadas ou carregam quebradas

img-src, connect-src

uploads.intercomcdn.com, *.intercomcdn.com

Product Tours

Tours não são renderizados ou alterações não são salvas

script-src, connect-src, img-src

*.intercom.io, *.intercomcdn.com

Mídia (vídeo/áudio)

Arquivos de mídia não são reproduzidos

media-src, connect-src

*.intercomcdn.com

Dica: Se você vir múltiplos erros no console ao mesmo tempo, resolva-os começando pela diretiva mais restritiva (ex: script-src bloqueia mais que img-src). Uma correção de diretiva pode resolver vários sintomas.


Como atualizar seu CSP para recursos específicos do Intercom

Use o modo Report-Only para auditar antes de aplicar, depois faça mudanças incrementais por recurso.

Use primeiro o modo Report-Only

Antes de editar sua Content Security Policy (CSP) aplicada para corrigir problemas do Intercom, adicione um cabeçalho Content-Security-Policy-Report-Only junto com sua política existente. Isso registra violações sem bloquear nada, para que você possa auditar com segurança o que precisa mudar.

Adicione o seguinte cabeçalho Content-Security-Policy-Report-Only aos cabeçalhos de resposta HTTP do seu servidor (junto — não substituindo — seu cabeçalho Content-Security-Policy aplicado):

Content-Security-Policy-Report-Only:
  script-src 'self' https://widget.intercom.io https://js.intercomcdn.com;
  connect-src 'self' https://*.intercom.io https://*.intercomcdn.com
             https://*.intercom-chat.com wss://*.intercom-chat.com;
  img-src 'self' https://*.intercomcdn.com;
  media-src 'self' https://*.intercomcdn.com;
  frame-src 'self' https://intercom-sheets.com;

Aplique as mudanças incrementalmente

  1. Ative o modo Report-Only e reproduza o problema.

  2. Anote todos os domínios bloqueados na saída do console.

  3. Adicione o(s) domínio(s) necessário(s) à diretiva relevante na sua política aplicada — uma diretiva por vez.

  4. Teste novamente no modo Report-Only para confirmar que não aparecem novas violações.

  5. Promova a mudança para seu cabeçalho Content-Security-Policy aplicado.

    Após promover, faça um hard refresh e confirme que o recurso do Intercom funciona como esperado. Se aparecer uma nova violação no console, repita a partir do passo 1 para a nova diretiva.


Como manter seu CSP atualizado

A configuração do CSP não é uma correção única. O Intercom atualiza periodicamente sua infraestrutura e requisitos de domínio. Siga os passos abaixo para manter sua política atualizada.

Monitore novas violações

  • Configure um endpoint de relatório CSP usando a diretiva report-to (uma diretiva CSP que informa aos navegadores para onde enviar relatórios de violação) para que as violações sejam enviadas automaticamente a um serviço de registro — você não precisará verificar manualmente o console. Nota: report-uri está obsoleto em favor de report-to. Ao usar report-to, você também precisa adicionar um cabeçalho HTTP de resposta Reporting-Endpoints para definir o grupo de endpoints.

  • Revise os relatórios de violação após qualquer atualização do Intercom ou após implantar mudanças na infraestrutura do seu site.

Mantenha-se atualizado com a lista de domínios do Intercom

  • Adicione aos favoritos o artigo Using Intercom with Content Security Policy e consulte-o quando o Intercom lançar atualizações importantes.

  • Assine a página de status do Intercom para ser notificado sobre mudanças na infraestrutura que possam afetar domínios necessários.

Evite erros comuns de gerenciamento

  • Não use unsafe-inline ou unsafe-eval como atalho. Adicionar esses valores a script-src desativa uma grande classe de proteção contra XSS (cross-site scripting) e expõe seu site a ataques de injeção de script — mesmo que seja uma medida temporária. Em vez disso, use nonces (tokens criptográficos adicionados a cada tag de script) ou hashes — o Intercom suporta CSPv3 estrito (a terceira versão do padrão CSP) com políticas baseadas em nonce.

  • Mantenha seu CSP sob controle de versão. Registre cada alteração junto com o histórico de implantação para poder reverter uma mudança de diretiva se ela quebrar funcionalidades.

  • Teste primeiro em um ambiente de staging. Sempre valide as mudanças no CSP contra os recursos do Intercom em um ambiente de staging ou preview antes de implantar em produção.

Nota: Se você está integrando o Intercom via Google Tag Manager (GTM), certifique-se de que as entradas script-src e connect-src do seu container GTM também estejam incluídas na sua política — o GTM injeta scripts dinamicamente, o que pode causar violações adicionais de CSP separadas dos domínios do Intercom. Se os problemas persistirem após atualizar essas diretivas, implemente o Intercom Messenger em uma tag GTM dedicada em vez de usar scripts inline.

Nota: Mudanças no cabeçalho CSP podem ser armazenadas em cache pelo seu CDN ou navegador. Se você não estiver vendo o comportamento atualizado da política após fazer alterações, limpe o cache do seu CDN e faça um hard refresh antes de testar novamente.

Notas:

  • Atualizar sua Content Security Policy requer acesso à configuração do servidor ou aos cabeçalhos HTTP. Se você não gerencia diretamente a infraestrutura do seu site, compartilhe este artigo com sua equipe de desenvolvimento ou departamento de TI.

  • Ao integrar o Intercom Messenger via Google Tag Manager (GTM), certifique-se de que a região de hospedagem do GTM corresponda à região do seu workspace Intercom. Defina api_base para o endpoint da sua região: api-iam.intercom.io (US), api-iam.eu.intercom.io (EU / EMEA — Europa, Oriente Médio e África) ou api-iam.au.intercom.io (AU).

Respondeu à sua pergunta?