Ir para o conteúdo principal
Bethemesh
GuiaBoas práticas

Content Security Policy (CSP): reduzir riscos XSS e carregamentos indesejados

Aprenda a construir uma CSP progressiva, compreender as suas diretivas e evitar políticas demasiado permissivas ou que quebram o site.

Publicado 29 de agosto de 2026Leitura : 3 minPor Equipa Bethemesh
Iniciante
Mostrar índice
  1. Uma CSP é uma lista de autorizações
  2. Avançar progressivamente
  3. Nonces, hashes e scripts inline
  4. frame-ancestors e iframes
  5. Compreender o fallback das diretivas
  6. Utilizar Report-Only durante a afinação
  7. Uma progressão possível
  8. CSP não significa “XSS impossível”
  9. A política evolui com o site

Uma Content Security Policy indica ao navegador que fontes de conteúdo são autorizadas. É especialmente útil para limitar o impacto de algumas injeções de scripts e impedir carregamentos provenientes de origens inesperadas.

Uma CSP é uma lista de autorizações

Diretivas como default-src, script-src, style-src, img-src, connect-src e frame-ancestors cobrem diferentes famílias de recursos. Uma política eficaz deve refletir as necessidades reais da aplicação, em vez de acumular domínios “por precaução”.

Um gerador CSP pode fornecer uma base legível, mas deve ser tratado como ponto de partida para testes, não como garantia automática de segurança.

Avançar progressivamente

Aplicar imediatamente uma política extremamente restritiva num site existente pode quebrar analytics, widgets, tipos de letra, imagens ou chamadas API. É mais seguro inventariar os recursos, construir uma política mínima, testar páginas críticas e apertar gradualmente as regras.

Evite resolver todos os erros acrescentando wildcards demasiado amplos. Cada exceção deve corresponder a uma necessidade compreendida.

Nonces, hashes e scripts inline

Os scripts inline são um ponto delicado. Nonces e hashes permitem autorizar conteúdos específicos sem abrir globalmente unsafe-inline. A escolha depende da arquitetura e da forma como as páginas são geradas.

unsafe-eval também merece uma decisão consciente: permite certas formas de avaliação dinâmica de código e deve ser evitado quando uma biblioteca ou configuração diferente elimina essa necessidade.

frame-ancestors e iframes

A diretiva frame-ancestors controla que origens podem integrar a página numa iframe. Contribui para limitar certas formas de clickjacking e complementa outros cabeçalhos de segurança.

Compreender o fallback das diretivas

default-src funciona como regra de fallback para várias categorias quando não existe uma diretiva mais específica. Assim que define script-src, são as regras desta diretiva que se aplicam aos scripts.

Uma política típica distingue pelo menos scripts, estilos, imagens, ligações de rede e frames. Conforme o site, font-src, media-src, worker-src, object-src, base-uri ou form-action também podem ser importantes. O objetivo não é usar todas as diretivas, mas descrever com precisão o comportamento esperado.

Utilizar Report-Only durante a afinação

Content-Security-Policy-Report-Only permite observar violações sem bloquear imediatamente os recursos. Num site existente é útil para navegar pelas páginas importantes, utilizar as funcionalidades e identificar as origens legítimas.

Report-Only é, contudo, uma fase de desenvolvimento. Quando a política estiver estabilizada, a proteção efetiva deve ser aplicada com o cabeçalho Content-Security-Policy.

Uma progressão possível

Comece por inventariar os recursos carregados, defina default-src 'self', acrescente explicitamente os domínios indispensáveis para imagens, APIs ou serviços de terceiros e trate os scripts com especial cuidado. Depois pode acrescentar object-src 'none', uma regra base-uri adequada e frame-ancestors de acordo com as necessidades de integração.

CSP não significa “XSS impossível”

Uma CSP é uma defesa em profundidade. Não substitui escaping de saídas, validação, autorização ou correção de vulnerabilidades aplicacionais. Uma política fraca ou mal adaptada pode até criar uma falsa sensação de proteção.

A política evolui com o site

Adicionar analytics, um leitor de vídeo, uma fonte remota ou uma nova API pode exigir alterações. Trate cada nova origem como uma extensão explícita do modelo de confiança, e não como motivo para colocar * em todo o lado.

Para alguns recursos estáticos externos, SRI acrescenta uma verificação complementar: CSP decide de onde pode vir um recurso; SRI pode verificar qual o conteúdo exato que foi recebido.

Ferramentas relacionadas

Segurança e privacidade

Gerador de CSP

Crie uma política Content Security Policy para reforçar a segurança do seu site.

100% local
Utilizar esta ferramenta
Segurança e privacidade

Gerador de cabeçalhos de segurança

Gere cabeçalhos HTTP de segurança adaptados às proteções que pretende ativar.

100% local
Utilizar esta ferramenta

Coleção

Proteger um site Web

  1. 01Segurança Web: compreender as proteções essenciais de um site
  2. 02Content Security Policy (CSP): reduzir riscos XSS e carregamentos indesejados
  3. 03Cabeçalhos HTTP de segurança: quais ativar e porquê
  4. 04Subresource Integrity (SRI): verificar a integridade dos recursos externos
  5. 05JWT: compreender estrutura, assinatura, expiração e erros comuns
  6. 06Palavras-passe: geração, robustez e políticas úteis
  7. 07Hash, integridade e comparação de impressões: o que um hash pode realmente provar

Este artigo foi útil?