Ir para o conteúdo principal
Segurança Web na UE: 10 Passos Para uma Melhor Classificação · Parte 3

Content Security Policy: A Defesa Mais Importante Que 89% Não Possuem

O CSP mitiga XSS, injeção e roubo de dados — uma linha de configuração que 89% dos websites da UE não têm. Como implementá-lo corretamente sem causar problemas.

· SiteGuardian

Parte 3 da série "Segurança Web na UE: 10 Passos Para uma Melhor Classificação"


Porque É Que o CSP É Importante

O Cross-Site Scripting (XSS) é a vulnerabilidade mais comum em aplicações web há mais de 20 anos. Um atacante injeta JavaScript no seu website — através de um formulário, um parâmetro de URL, um comentário. O navegador do visitante executa o código porque não consegue distingui-lo do conteúdo legítimo da página.

O Content Security Policy (CSP) resolve este problema: define explicitamente quais as fontes que o navegador pode aceitar para scripts, estilos, imagens e outros recursos. Tudo o resto é bloqueado.

Taxa de adoção na UE: 10,8%. Nove em cada dez websites não possuem cabeçalho CSP.


O Que os Dados Mostram

Do SiteGuardian Benchmark com mais de 700 000 websites europeus:

  • 10,8% possuem cabeçalho CSP
  • Websites com security.txt possuem CSP em 47% dos casos — 4,7x mais frequente
  • Permissions-Policy (cabeçalho relacionado): apenas 6,4%

Implementar o CSP Passo a Passo

O maior obstáculo: um CSP demasiado restritivo parte o website. O Google Analytics deixa de carregar, os vídeos do YouTube incorporados desaparecem, os estilos inline deixam de funcionar.

Passo 1: Modo Report-Only (não parte nada)

Content-Security-Policy-Report-Only: default-src 'self'; report-uri /csp-report

O navegador reporta violações mas não bloqueia nada. Consegue ver que fontes externas o seu website utiliza sem causar qualquer problema.

Passo 2: Identificar Fontes

Monitorize os relatórios durante 1-2 semanas. Fontes típicas que precisará de permitir:

  • Google Analytics: https://www.googletagmanager.com https://www.google-analytics.com
  • Google Fonts: https://fonts.googleapis.com https://fonts.gstatic.com
  • YouTube Embeds: https://www.youtube.com https://www.youtube-nocookie.com
  • O seu CDN: https://cdn.o-seu-dominio.pt

Passo 3: Construir a Política

Content-Security-Policy: default-src 'self'; script-src 'self' https://www.googletagmanager.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src https://fonts.gstatic.com; img-src 'self' data: https:; frame-src https://www.youtube-nocookie.com

Passo 4: Ativar

Remova -Report-Only do nome do cabeçalho. Teste o website exaustivamente.


Diretivas Principais

Diretiva Controla Recomendação
default-src Fallback para tudo 'self'
script-src JavaScript 'self' + domínios explícitos
style-src CSS 'self' 'unsafe-inline' (frequentemente necessário)
img-src Imagens 'self' data: https:
font-src Fontes tipográficas 'self' + Google Fonts se necessário
connect-src XHR/Fetch 'self' + domínios de API
frame-src iframes Apenas domínios explícitos
object-src Flash/Java 'none' (sempre)
base-uri Tag base 'self'

Nginx

add_header Content-Security-Policy "default-src 'self'; script-src 'self' https://www.googletagmanager.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; object-src 'none'; base-uri 'self'" always;

Apache

Header always set Content-Security-Policy "default-src 'self'; script-src 'self' https://www.googletagmanager.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; object-src 'none'; base-uri 'self'"

Erros Comuns

1. unsafe-inline para scripts. script-src 'unsafe-inline' permite qualquer script inline — tornando todo o CSP inútil contra XSS. Utilize nonces ou hashes em vez disso.

2. * como fonte. default-src * permite tudo de qualquer lugar. Isso não é uma política, é um placebo.

3. Começar demasiado restritivo. Comece sempre com Report-Only. Um CSP que parte o website e é imediatamente desativado não protege ninguém.


Contexto Regulamentar

  • NIS2, art. 21.o, n.o 2, alínea d) — segurança no desenvolvimento e manutenção de sistemas de informação
  • RGPD, art. 32.o — o XSS pode conduzir a violações de dados (sequestro de sessão, roubo de cookies)
  • PCI DSS 4.0 — o requisito 6.4.3 exige explicitamente CSP para páginas de pagamento

Verifique o Seu CSP

O SiteGuardian não só deteta se existe um cabeçalho CSP, como analisa as diretivas quanto a fraquezas conhecidas:

https://siteguardian.io/scan


Na próxima semana na Parte 4: DNSSEC — porque 84% dos domínios da UE não possuem proteção contra spoofing de DNS.

Como se compara o seu site?

O SiteGuardian analisa o seu domínio em seis dimensões de segurança — gratuito, instantâneo, sem registo.

Analisar o seu site

Segurança Web na UE: 10 Passos Para uma Melhor Classificação

Este artigo faz parte de uma série semanal sobre boas práticas de segurança web na UE.

SiteGuardian

2026-04-27

RSS