Skip to content

Content-Security-Policy (CSP)

A Política de Segurança de Conteúdo (CSP) é uma camada de segurança adicional que ajuda a detectar e mitigar certos tipos de ataques, incluindo Cross-Site Scripting (XSS) e ataques de injeção de dados.

Como funciona?

O CSP permite que os administradores do site declarem quais domínios o navegador deve considerar como fontes confiáveis de scripts executáveis, estilos, imagens e outros recursos. O navegador bloqueará qualquer recurso que venha de uma origem não autorizada.

Diretivas Comuns

  • default-src: Define a política padrão para a maioria das diretivas.
  • script-src: Controla de onde os scripts podem ser carregados e executados.
  • style-src: Controla de onde as folhas de estilo podem ser carregadas.
  • img-src: Define as origens permitidas para imagens.
  • frame-ancestors: Define quais sites podem incorporar a página (proteção contra Clickjacking).

Como fazer vs Como não fazer

✅ Como fazer

  • Inicie com uma política restritiva e libere apenas o necessário: Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.api.com;
  • Utilize Nonces ou Hashes para permitir scripts inline legítimos sem abrir mão da segurança.
  • Utilize o modo Content-Security-Policy-Report-Only durante a fase de testes para identificar violações sem bloquear o funcionamento do site.

❌ Como não fazer

  • Evite o uso de 'unsafe-inline'. Ele permite a execução de qualquer script escrito diretamente no HTML, facilitando ataques XSS.
  • Evite o uso de 'unsafe-eval'. Ele permite o uso de funções como eval(), que são vetores comuns de injeção de código.
  • Não utilize políticas excessivamente permissivas (ex: script-src *) apenas para evitar erros de configuração.
  • Não esqueça de incluir diretivas para conexões de dados (connect-src) se sua aplicação faz chamadas para APIs externas ou utiliza WebSockets.