Ir para o conteúdo principal
Bethemesh

Gerador de CSP

Componha uma Content Security Policy a partir de modelos (estrito, analytics, permissivo), ajuste cada diretiva, ative Report-Only ou upgrade-insecure-requests e copie o cabeçalho HTTP ou a etiqueta meta, com avisos sobre unsafe-inline, unsafe-eval e curingas.

  • Área de transferência

Integrar este widget

Personalize o resultado, verifique a pré-visualização e copie o código.

Pré-visualização

Tipo de código de integração

Código a copiar

Responsivo e redimensionado automaticamente pela Bethemesh.

Modelo

Gera um cabeçalho de monitorização que não bloqueia recursos.

Diretivas

Separe as origens por espaços ou vírgulas.

Cabeçalho HTTP

Etiqueta meta

Política bruta

Esta ferramenta foi útil?

Como funciona esta ferramenta?

O gerador de CSP ajuda-o a escrever o cabeçalho Content-Security-Policy, que indica ao navegador de que origens o seu site pode carregar scripts, estilos, imagens e ligações. Destina-se a programadores, integradores front-end e administradores que pretendem reduzir o impacto de uma falha XSS sem decorar a sintaxe das diretivas.

Uma CSP (W3C Content Security Policy Level 3) é uma lista de diretivas separadas por ponto e vírgula, cada uma seguida das suas origens: `default-src 'self'; script-src 'self' https://www.googletagmanager.com; object-src 'none'; base-uri 'self'`. As palavras-chave como `'self'`, `'none'` ou `'unsafe-inline'` ficam entre plicas; os hosts e esquemas (`https:`, `data:`) não. As diretivas de carregamento (script-src, img-src, connect-src…) herdam de default-src quando estão ausentes, mas base-uri, form-action e frame-ancestors não herdam: é por isso que a ferramenta assinala a sua ausência.

A ferramenta junta os valores introduzidos, remove duplicados e campos vazios e produz três saídas: a política em bruto, o cabeçalho `Content-Security-Policy` (ou `Content-Security-Policy-Report-Only` em modo de monitorização) e uma etiqueta `<meta http-equiv>`. Depois analisa a política e avisa se faltarem default-src, object-src ou base-uri, ou se `'unsafe-inline'`, `'unsafe-eval'` ou o curinga `*` enfraquecerem a proteção. A diretiva upgrade-insecure-requests, sem valor, pede ao navegador que carregue por HTTPS os recursos referenciados em HTTP.

Como usar esta ferramenta

  1. Escolha um modelo

    Selecione Estrito, Com analytics, Permissivo ou Personalizado e ative, se necessário, o modo Report-Only para obter um cabeçalho de monitorização que não bloqueia.

  2. Ajuste as diretivas

    Preencha default-src, script-src, style-src, img-src, connect-src, frame-ancestors e os restantes campos, separando as origens por espaços ou vírgulas, e ative upgrade-insecure-requests se for preciso.

  3. Gere e copie

    Clique em «Gerar CSP», leia os avisos e copie ou exporte o cabeçalho HTTP, a etiqueta meta ou a política em bruto.

Casos de uso

Primeira CSP num site institucional

Parta do modelo estrito, acrescente apenas as suas CDN e a sua API em script-src e connect-src e publique-a primeiro em Report-Only para ver o que seria bloqueado.

Autorizar o Google Tag Manager e o Analytics

O modelo «Com analytics» acrescenta googletagmanager.com e google-analytics.com às diretivas certas, a completar com as etiquetas que realmente carrega.

Corrigir uma conclusão de auditoria

Um scanner indica «Content-Security-Policy em falta» ou «unsafe-inline permitido»: reconstrua a política e confirme que não resta nenhum aviso antes de a repor em produção.

Exemplos

Política CSP mínima

Entrada

Diretivas: default-src = 'self'; object-src = 'none'; base-uri = 'self'; Modo Report-Only: desativado

Resultado

Cabeçalho HTTP: Content-Security-Policy: default-src 'self'; object-src 'none'; base-uri 'self' (nenhum aviso)

Dicas e boas práticas

  • Teste sempre a política em Report-Only em todas as páginas (formulários, pagamento, back-office) antes de a tornar bloqueante: as violações aparecem na consola do navegador.
  • A etiqueta meta ignora frame-ancestors, report-uri e sandbox e não suporta o modo Report-Only: nesses casos, utilize o cabeçalho HTTP.
  • Não escreva `self` sem plicas: o navegador interpreta-o como nome de host e a origem não corresponde a nada.

Fontes e referências

Perguntas frequentes

Uma CSP impede ataques XSS?

Não corrige a vulnerabilidade, mas limita muito o que um script injetado pode fazer ao bloquear scripts inline e domínios não autorizados. Uma CSP com 'unsafe-inline' em script-src perde grande parte dessa proteção. A OWASP apresenta-a como defesa em profundidade, a par do escape correto dos dados.

Cabeçalho HTTP ou etiqueta meta?

O cabeçalho HTTP é preferível: aplica-se desde o início do carregamento e suporta todas as diretivas. A etiqueta meta serve num alojamento estático sem acesso aos cabeçalhos, mas ignora frame-ancestors, report-uri e sandbox e só protege o conteúdo que vem depois dela.

Como autorizar um script inline sem unsafe-inline?

Acrescente a script-src um nonce (`'nonce-valorAleatorio'`, gerado de novo em cada resposta e repetido no atributo nonce da etiqueta) ou o hash do script (`'sha256-…'`, Base64 do SHA-256 do conteúdo exato). Pode escrever estes valores diretamente no campo script-src; o hash calcula-se com um gerador SRI ou de hash.

'self' inclui os subdomínios?

Não. 'self' corresponde apenas à mesma origem: mesmo esquema, host e porta. Para autorizar cdn.example.com ou todos os subdomínios, acrescente explicitamente `https://cdn.example.com` ou `https://*.example.com`.

Como funciona o modo Report-Only?

O cabeçalho Content-Security-Policy-Report-Only avalia a mesma política sem bloquear nada: o navegador limita-se a reportar as violações na consola e, se acrescentar uma diretiva report-to ou report-uri, envia-as para o seu ponto de recolha. Permite afinar a política antes de passar para o cabeçalho bloqueante.

frame-ancestors substitui X-Frame-Options?

Sim, frame-ancestors é o substituto moderno de X-Frame-Options e tem prioridade nos navegadores que o suportam: `frame-ancestors 'none'` equivale a DENY. Muitos sites mantêm ambos para clientes mais antigos. Só funciona no cabeçalho HTTP, não numa etiqueta meta.

Ferramentas relacionadas

Ferramentas semelhantes ou complementares a esta.

Ferramentas semelhantes

Gere HSTS, nosniff, Referrer-Policy, Permissions-Policy, COOP/COEP/CORP e X-Frame-Options para Nginx ou Apache.

Segurança e privacidadeUtilizar esta ferramenta

Gere o atributo integrity SRI de um script ou folha de estilos a partir de um conteúdo, ficheiro ou URL de CDN.

Segurança e privacidadeUtilizar esta ferramenta

Analise cabeçalhos HTTP para verificar segurança, cache, CORS e cookies de uma resposta.

Segurança e privacidadeUtilizar esta ferramenta