Gerador de Content Security Policy (CSP)

Monte uma Content-Security-Policy diretiva por diretiva, exporte como cabeçalho, meta tag, configuração Nginx ou Apache e receba avisos sobre configurações inseguras.

Cabeçalho de resposta HTTP
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; upgrade-insecure-requests
Avaliação da política
As verificações embutidas não encontraram problemas.
Tag HTML <meta>
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; upgrade-insecure-requests">
frame-ancestors, report-uri, report-to e sandbox não funcionam em uma tag <meta>, por isso ficaram de fora – envie o cabeçalho HTTP para usá-los.
Nginx
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; upgrade-insecure-requests" always;
Apache (.htaccess)
Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; upgrade-insecure-requests"
Importar uma política existente
Comece no modo somente relatório (Content-Security-Policy-Report-Only) e acompanhe o console do navegador antes de aplicar uma nova política. As verificações aqui são estáticas e seguem regras comuns de avaliadores de CSP; elas não veem os scripts reais das suas páginas.

O que é Gerador de CSP?

Este gerador de CSP ajuda a escrever uma Content-Security-Policy que restringe de onde scripts, estilos, imagens, frames e outros recursos podem ser carregados. Ele parte de uma política rigorosa, permite editar cada diretiva e avalia o resultado ao vivo, avisando sobre fraquezas como 'unsafe-inline', fontes de script com curinga, object-src ou base-uri ausentes e palavras-chave sem aspas. Você também pode importar uma política existente.

Como usar Gerador de CSP

  1. Comece pela Política inicial rigorosa ou por Limpar tudo.
  2. Edite as fontes de cada diretiva, por exemplo 'self' https://cdn.example.com.
  3. Ative ou desative upgrade-insecure-requests e acrescente um report-uri, se precisar.
  4. Leia a avaliação da política e corrija as constatações de prioridade alta e média.
  5. Copie a política como cabeçalho HTTP, meta tag, linha de Nginx ou de Apache; ou importe uma política existente para analisá-la.

Exemplo

Entrada
Strict starter policy
Saída
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; upgrade-insecure-requests

Quando usar Gerador de CSP

Use para rascunhar ou revisar uma CSP antes de implantá-la. Implante novas políticas primeiro com Content-Security-Policy-Report-Only e acompanhe as violações, porque uma política rigorosa vai quebrar scripts inline e widgets de terceiros que você esqueceu de permitir. As verificações são estáticas e não conseguem ver quais scripts as suas páginas realmente carregam.

Como funciona Gerador de CSP

As diretivas são serializadas em uma ordem fixa como name source source; …, ignorando as vazias. A avaliação aplica regras estáticas parecidas com as do CSP Evaluator do Google: palavras-chave como self ou none precisam estar entre aspas; script-src (ou default-src como alternativa) sem nonce/hash contendo 'unsafe-inline', 'unsafe-eval', *, http:, https: ou data: é sinalizado; object-src deve ser 'none'; base-uri, frame-ancestors e form-action devem estar definidos. A versão em meta tag omite frame-ancestors, report-uri, report-to e sandbox, que os navegadores ignoram em meta tags.

Casos de Uso Comuns

  • Criar uma primeira CSP rigorosa para um site novo.
  • Auditar uma política copiada da produção em busca de 'unsafe-inline' e curingas.
  • Acrescentar corretamente um host de analytics ou de CDN ao script-src.
  • Obter a linha add_header exata do Nginx para uma política.

Perguntas Frequentes

Por que o 'unsafe-inline' é um problema?

Ele permite qualquer script inline, inclusive um injetado por uma falha de XSS, o que anula o principal objetivo da CSP. Use nonces ou hashes.

Cabeçalho ou meta tag?

Prefira o cabeçalho HTTP. Uma meta tag não pode usar frame-ancestors, report-uri ou sandbox, e só se aplica ao conteúdo que vem depois dela.

Como testo sem quebrar o meu site?

Envie a mesma política como Content-Security-Policy-Report-Only; os navegadores informam as violações no console sem bloquear nada.

Explore mais categorias