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-Onlydurante 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 comoeval(), 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.