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-inlinesempre 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
- 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.).
- 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 - 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.
- Ajuste a política, adicionando as fontes necessárias que tenham sido identificadas.
- Quando tiver confiança na política definida, mude de
Content-Security-Policy-Report-OnlyparaContent-Security-Policy, passando de modo de monitorização para modo de aplicação efetiva. - 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.
