Política de Segurança de Conteúdo meta http-equiv
Defina uma Política de Segurança de Conteúdo por meio de meta http-equiv.
Política de Segurança de Conteúdo meta http-equiv é uma aula grátis de HTML Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de HTML Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de HTML Academy inclui 4 aulas no total.
O que é CSP?
A Política de Segurança de Conteúdo é uma política imposta pelo navegador que restringe quais recursos uma página pode carregar e executar. É a defesa mais forte contra scripts entre sites: mesmo que um invasor injete uma tag <script>, o navegador se recusa a executá-la, a menos que a política permita isso.
Duas formas de fornecê-la
A CSP pode ser enviada como um cabeçalho de resposta HTTP (Content-Security-Policy: ...) ou como uma tag meta no HTML: <meta http-equiv="Content-Security-Policy" content="...">. O cabeçalho é preferível; a tag meta é útil quando você não pode controlar o servidor.
<meta http-equiv="Content-Security-Policy"
content="default-src 'self'; script-src 'self' https://cdn.example.com">Diretivas comuns
default-src é a alternativa padrão para tipos de recursos não especificados. script-src, style-src, img-src, connect-src (XHR/fetch), font-src e frame-src restringem cada um o respectivo tipo. Permita explicitamente origens específicas ou use 'self' somente para a mesma origem.
A palavra-chave self
'self' (entre aspas) refere-se à própria origem da página. script-src 'self' significa "executar somente scripts hospedados na mesma origem que a página". Essa é a base da maioria das políticas; adicione CDNs externos específicos quando necessário.
Bloqueando scripts inline
Por padrão, a CSP bloqueia todas as tags <script> inline e os atributos de manipuladores de eventos (onclick). Essa é a proteção mais forte contra XSS: um <script> injetado não pode ser executado porque está inline. Mova todos os scripts para arquivos externos referenciados por src.
Nonces e hashes
Para scripts inline necessários, use um nonce: o servidor gera um token aleatório por solicitação, define-o como script-src 'nonce-RANDOM' na CSP e adiciona nonce="RANDOM" às tags <script> legítimas. Scripts injetados não têm o nonce e são bloqueados.
<meta http-equiv="Content-Security-Policy"
content="script-src 'nonce-abc123'">
<script nonce="abc123">// allowed</script>
<script>// blocked — no nonce</script>unsafe-inline e unsafe-eval
'unsafe-inline' permite novamente scripts e estilos inline. 'unsafe-eval' permite novamente eval() e new Function(). Ambos enfraquecem gravemente a CSP — use-os somente como último recurso durante uma migração e planeje removê-los.
Limitações da tag meta
A CSP fornecida por meio de uma tag meta não pode usar a diretiva report-uri (nem outros recursos de relatório). Ela também entra em vigor mais tarde que um cabeçalho — tudo que vier antes da tag meta fica desprotegido. Os cabeçalhos são muito melhores; use meta somente como alternativa.
Modo somente para relatório
Teste uma nova política sem interromper o site: Content-Security-Policy-Report-Only: .... O navegador relata as violações sem bloqueá-las, para que você possa ajustar a política até que ela permita todos os recursos legítimos antes de ativar a aplicação.
Armadilhas comuns
Esquecer style-src 'unsafe-inline' bloqueia estilos inline (frequentemente produzidos por estruturas de trabalho). Esquecer connect-src bloqueia AJAX para APIs. Sempre teste a política primeiro no modo somente para relatório e verifique no console quais recursos foram bloqueados.
Estratégia moderna de CSP
Uma CSP rigorosa combina script-src 'nonce-RANDOM' 'strict-dynamic' para scripts com uma lista de permissões restrita para todo o restante. 'strict-dynamic' permite que scripts com nonce carreguem outros scripts sem listá-los individualmente — é muito mais fácil de manter do que listas de permissões por origem.
Verificação de conhecimento
Como a CSP se defende contra ataques XSS mesmo quando um invasor consegue injetar uma tag de script?
Resumo
A CSP é uma política imposta pelo navegador que restringe quais scripts, estilos, imagens e outros recursos podem ser carregados. Forneça-a por meio do cabeçalho de resposta (preferível) ou de uma tag meta. Use nonces para scripts inline necessários, evite unsafe-inline/unsafe-eval e teste primeiro no modo somente para relatório. Uma CSP rigorosa com 'nonce-X' 'strict-dynamic' é a base moderna.
Perguntas Frequentes
A aula “Política de Segurança de Conteúdo meta http-equiv” é grátis?
Sim — o texto completo de “Política de Segurança de Conteúdo meta http-equiv” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de HTML Academy, atualize para CoddyKit PRO. O curso de HTML Academy inclui 4 aulas no total.
O que vou aprender em “Política de Segurança de Conteúdo meta http-equiv”?
Defina uma Política de Segurança de Conteúdo por meio de meta http-equiv. Você pratica HTML Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar HTML Academy?
Nenhuma experiência prévia é necessária. HTML Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Política de Segurança de Conteúdo meta http-equiv”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de HTML Academy?
Sim. Cada aula de HTML Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Política de Segurança de Conteúdo meta http-equiv
- XSS via innerHTML e como evitá-lo
- Sandbox de iframe e Política de Permissões
- HTTPS e integridade de subrecursos