Content-Security-Policy (CSP): o que é e como configurar

O CSP é um dos cabeçalhos de segurança mais eficazes contra ataques de Cross-Site Scripting. Neste artigo explicamos o que é, porque importa e como configurá-lo sem partir o seu site.

O que é o Content-Security-Policy

O Content-Security-Policy (CSP) é um cabeçalho HTTP que permite definir, de forma explícita, quais as fontes de conteúdo (scripts, folhas de estilo, imagens, fontes, iframes, etc.) que o navegador tem permissão para carregar numa página. Qualquer conteúdo de uma fonte não autorizada é bloqueado automaticamente pelo navegador.

Porque é importante

Sem um CSP configurado, se um atacante conseguir injetar código malicioso no seu site (por exemplo, através de um formulário mal validado ou de uma dependência comprometida), esse código é executado sem restrições no navegador dos visitantes – um ataque conhecido como Cross-Site Scripting (XSS). Com um CSP bem configurado, mesmo que o código malicioso seja injetado, o navegador recusa-se a executá-lo, por não vir de uma fonte autorizada.

Boas práticas

  • Começar em modo de monitorização (Content-Security-Policy-Report-Only) antes de aplicar a política de forma restritiva, para identificar bloqueios inesperados sem afetar visitantes reais.
  • Definir explicitamente as fontes autorizadas para cada tipo de conteúdo (scripts, estilos, imagens, fontes, etc.), em vez de usar diretivas demasiado permissivas.
  • Evitar a diretiva unsafe-inline sempre que possível, já que permite a execução de scripts inline, reduzindo a eficácia da proteção.
  • Rever e atualizar a política sempre que adicionar novas ferramentas de terceiros ao site (ex: chat, analytics, mapas incorporados).
  • Monitorizar a consola do navegador e os relatórios de violação de CSP após qualquer alteração.

Como corrigir

  1. Identifique todas as fontes externas que o seu site utiliza atualmente (scripts, CSS, imagens, fontes, fornecedores de terceiros como Google Analytics, chat ao vivo, etc.).
  2. Configure o cabeçalho no seu servidor ou aplicação, começando em modo de monitorização, por exemplo:

    Content-Security-Policy-Report-Only: default-src 'self'; script-src 'self' www.google-analytics.com
  3. Analise os relatórios de violação ou a consola do navegador durante alguns dias, para identificar recursos legítimos que estejam a ser bloqueados.
  4. Ajuste a política, adicionando as fontes necessárias que tenham sido identificadas.
  5. Quando tiver confiança na política definida, mude de Content-Security-Policy-Report-Only para Content-Security-Policy, passando de modo de monitorização para modo de aplicação efetiva.
  6. Continue a monitorizar após a ativação, especialmente após atualizações ao site ou adição de novas ferramentas.

Uma política de CSP mal configurada pode bloquear scripts legítimos e partir funcionalidades do seu site sem aviso prévio – e a maioria dos fornecedores de alojamento genéricos não ajuda a configurar nem a testar isto. Na WebDig Host, configuramos o CSP do seu site de forma cuidadosa e testada, para reforçar a segurança sem comprometer o funcionamento.

Conhecer os serviços de alojamento e gestão de domínios da WebDig Host

Perguntas frequentes sobre o CSP

O CSP pode partir o meu site?

Sim, se for configurado de forma demasiado restritiva sem testar previamente. Por isso é recomendável começar sempre em modo de monitorização (Report-Only) antes de aplicar a política de forma efetiva.

O que significa default-src 'self'?

Significa que, por defeito, só são permitidos recursos vindos do próprio domínio do site. Outras diretivas mais específicas (como script-src ou img-src) podem depois abrir exceções para fontes adicionais autorizadas.

Preciso de atualizar o CSP sempre que adiciono uma nova ferramenta ao site?

Sim. Sempre que adicionar uma nova ferramenta de terceiros (ex: um novo widget de chat ou uma ferramenta de analytics), é necessário adicionar essa fonte à política de CSP, ou o navegador irá bloqueá-la.

Verifique agora os cabeçalhos de segurança do seu site

Com o Secure Check, pode confirmar gratuitamente se o CSP e outros cabeçalhos de segurança do seu domínio estão configurados, em poucos segundos.

Analisar o meu domínio gratuitamente com o Secure Check