Gerador de Política de Segurança de Conteúdo
Gere cabeçalhos CSP para proteger contra ataques XSS e injeção de código. Inclui predefinições de segurança e configurações para Nginx, Apache e HTML meta.
Predefinições de Segurança
Configurar Diretivas
fetch Directives
default-srcFallback for other fetch directives
Examples: 'self', 'self' https:, 'none'
script-srcSources for JavaScript execution
Examples: 'self', 'self' 'unsafe-inline', 'self' https://cdn.example.com
style-srcSources for stylesheets
Examples: 'self', 'self' 'unsafe-inline', 'self' https://fonts.googleapis.com
img-srcSources for images
Examples: 'self', 'self' data:, 'self' https: data:
font-srcSources for fonts
Examples: 'self', 'self' https://fonts.gstatic.com, 'self' data:
connect-srcSources for XHR, WebSocket, and EventSource
Examples: 'self', 'self' https://api.example.com, 'self' wss:
media-srcSources for audio and video
Examples: 'self', 'self' https://media.example.com, 'none'
object-srcSources for plugins (object, embed, applet)
Examples: 'none', 'self', 'self' https://plugins.example.com
frame-srcSources for nested browsing contexts (iframe)
Examples: 'self', 'none', 'self' https://www.youtube.com
worker-srcSources for Worker, SharedWorker, or ServiceWorker
Examples: 'self', 'none', 'self' blob:
manifest-srcSources for web app manifests
Examples: 'self', 'none', 'self' https://cdn.example.com
document Directives
base-uriRestrict URLs for <base> elements
Examples: 'self', 'none', 'self' https://example.com
navigation Directives
form-actionRestrict form submission URLs
Examples: 'self', 'none', 'self' https://api.example.com
frame-ancestorsRestrict embedding this page in frames
Examples: 'none', 'self', 'self' https://trusted.example.com
reporting Directives
report-uriURL to send CSP violation reports
Examples: https://example.com/csp-report, /csp-violation-endpoint
Política de Segurança de Conteúdo Gerada
Política CSP
default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; frame-src 'self'; worker-src 'self'; manifest-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'
Cabeçalho HTTP
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; frame-src 'self'; worker-src 'self'; manifest-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'
Meta Tag HTML
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; frame-src 'self'; worker-src 'self'; manifest-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'">
Configuração Nginx
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; frame-src 'self'; worker-src 'self'; manifest-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'";
Configuração Apache
Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self'; font-src 'self'; connect-src 'self'; media-src 'self'; object-src 'none'; frame-src 'self'; worker-src 'self'; manifest-src 'self'; base-uri 'self'; form-action 'self'; frame-ancestors 'self'"
Baixar Configuração
Dicas de Segurança
- • Comece com o modo Somente Relatório para identificar mudanças problemáticas
- • Evite 'unsafe-inline' e 'unsafe-eval' quando possível
- • Use nonces ou hashes para scripts/estilos inline
- • Revise e atualize seu CSP regularmente conforme seu site evolui
- • Monitore relatórios de violação CSP para detectar ataques e configurações incorretas
- • Use 'strict-dynamic' com nonces para implementações CSP modernas
Ferramentas Relacionadas
Sobre Esta Ferramenta
Como Funciona
- Configure diretivas CSP para controlar o carregamento de recursos
- Use predefinições de segurança para níveis de segurança comuns
- Gere cabeçalhos para vários servidores web
- Teste com o modo Somente Relatório antes da aplicação
Casos de Uso Comuns
- Prevenir ataques XSS e injeção de código
- Controlar carregamento de recursos de terceiros
- Implementar segurança em profundidade
- Cumprir as melhores práticas de segurança
Perguntas Frequentes
O que é uma Política de Segurança de Conteúdo (CSP) e por que preciso dela?
CSP é uma funcionalidade de segurança que ajuda a prevenir ataques de scripting entre sites (XSS) e injeção de dados ao controlar quais recursos podem ser carregados no seu site. Atua como uma camada adicional de segurança contra a execução de código malicioso.
Qual é a diferença entre o modo de aplicação e o modo somente relatório?
O modo de aplicação bloqueia ativamente violações da política CSP, enquanto o modo somente relatório registra violações sem bloqueá-las. Use o modo somente relatório primeiro para testar sua política antes de aplicá-la no site em produção.
Qual predefinição de segurança devo escolher?
Comece com 'Segurança Estrita' para máxima proteção, 'Segurança Moderada' para a maioria dos sites com recursos externos, ou 'Permissivo' para sites de desenvolvimento ou legados. Você sempre pode personalizar as diretivas após selecionar uma predefinição.
Posso usar CSP com meta tags em vez de cabeçalhos HTTP?
Sim, mas cabeçalhos HTTP são recomendados pois oferecem mais funcionalidade e segurança. Note que o modo somente relatório só pode ser implementado usando cabeçalhos HTTP, não meta tags.
O que significa 'unsafe-inline' e devo evitá-lo?
'unsafe-inline' permite a execução de scripts e estilos inline, o que pode ser um risco de segurança. É melhor usar arquivos externos ou implementar nonces/hashes para conteúdo inline. Use 'unsafe-inline' apenas quando for absolutamente necessário para compatibilidade com legados.
Como lidar com serviços de terceiros como Google Analytics ou CDNs?
Adicione os domínios específicos às diretivas apropriadas (ex.: script-src para analytics, font-src para fontes web). Para Google Analytics, adicione 'https://www.google-analytics.com' ao script-src. Seja específico em vez de usar wildcards.
O que devo fazer se o CSP quebrar meu site?
Primeiro, use o modo somente relatório para identificar violações sem quebrar a funcionalidade. Verifique o console do navegador para erros de violação CSP, depois atualize sua política. Aplique restrições gradualmente.
Como implementar relatórios de violação CSP?
Configure uma diretiva report-uri apontando para um endpoint que possa receber requisições POST com dados de violação CSP. Muitos serviços oferecem monitoramento de violações CSP, ou você pode criar seu próprio endpoint.
Posso usar múltiplas políticas CSP na mesma página?
Se múltiplas políticas CSP forem definidas (via cabeçalhos e meta tags), a política mais restritiva se aplica. Recomenda-se usar uma única política bem configurada em vez de múltiplas políticas conflitantes.
Qual é a diferença entre frame-src e frame-ancestors?
frame-src controla quais URLs sua página pode incorporar em iframes, enquanto frame-ancestors controla quais URLs podem incorporar sua página. Use frame-ancestors: 'none' para impedir que sua página seja incorporada em qualquer lugar.
Com que frequência devo atualizar minha política CSP?
Revise sua política CSP quando adicionar novos serviços de terceiros, alterar a arquitetura do site ou receber relatórios de violação. Auditorias de segurança regulares devem incluir revisões da política CSP.
O CSP funciona em todos os navegadores?
CSP é suportado por todos os navegadores modernos, embora algumas versões mais antigas possam ter suporte limitado para recursos CSP mais recentes. O CSP degrada graciosamente — diretivas não suportadas são ignoradas.