Skip to main content
Validação HTML

Valor inválido “”Content-Security-Policy”” para o atributo “http-equiv” no elemento “meta”.

Sobre este problema HTML

O atributo http-equiv aceita um conjunto específico de valores predefinidos, e o validador verifica tanto o próprio valor como a sua formatação. Quando o validador reporta um valor inválido de ""Content-Security-Policy"" (note as aspas duplicadas), significa que o valor do atributo real que está a ser analisado inclui caracteres de aspas literais como parte da string. O browser vê a primeira " como abertura do atributo, depois imediatamente vê a segunda " como fecho — resultando numa tag malformada que não funcionará como pretendido.

Isto é importante por várias razões. Content-Security-Policy entregue através de uma tag <meta> é um mecanismo de segurança crítico que restringe quais recursos a sua página pode carregar. Se a tag estiver malformada, o browser irá silenciosamente ignorar a política, deixando o seu site sem as proteções CSP que pretendia. Não há indicação visual de que a política falhou ao aplicar, tornando isto um bug particularmente perigoso.

Causas comuns deste problema incluem:

  • Copiar código de um processador de texto ou CMS que converte aspas direitas (") em aspas curvas/inteligentes (" e ").
  • Escaping duplo em templates onde um motor de templates adiciona aspas em torno de um valor que já tem aspas na marcação.
  • Erros tipográficos manuais onde as aspas são acidentalmente duplicadas.

Para corrigir isto, abra o seu código HTML fonte num editor de texto simples (não um processador de texto) e certifique-se de que o valor http-equiv está envolvido em exatamente um par de aspas duplas direitas padrão sem caracteres de aspas extra no interior.

Exemplos

Incorreto — aspas duplicadas em torno do valor

<meta http-equiv=""Content-Security-Policy"" content="default-src 'self';">

O validador interpreta isto como um atributo http-equiv com um valor vazio (""), seguido de conteúdo não reconhecido (Content-Security-Policy""), produzindo o erro.

Incorreto — aspas curvas/inteligentes

<meta http-equiv="Content-Security-Policy" content="default-src 'self';">

Aspas inteligentes (" e ") não são delimitadores de atributo válidos em HTML. Tornam-se parte do próprio valor do atributo, fazendo com que o validador o rejeite.

Incorreto — aspas de entidade HTML dentro do atributo

<meta http-equiv="&quot;Content-Security-Policy&quot;" content="default-src 'self';">

Usar &quot; dentro do valor do atributo incorpora caracteres de aspas literais na string do valor, o que a torna inválida.

Correto — um único par de aspas duplas direitas

<meta http-equiv="Content-Security-Policy" content="default-src 'self';">

Correto — exemplo de documento completo

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src https:; script-src 'self';">
  <title>CSP Example</title>
</head>
<body>
  <h1>Hello, World!</h1>
</body>
</html>

O valor http-equiv Content-Security-Policy deve ser escrito exatamente como mostrado — é insensível a maiúsculas/minúsculas segundo a especificação HTML, mas usar a capitalização canónica é recomendado para clareza. As diretivas da política real vão no atributo content, não no http-equiv. Se estiver a usar um motor de templates ou CMS, verifique o código HTML fonte gerado (através de “Ver Código-fonte da Página” no seu browser) para confirmar que a saída contém aspas direitas limpas sem duplicação.

Encontre problemas como este automaticamente

O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.

Ajude-nos a melhorar os nossos guias

Este guia foi útil?

Pronto para validar os seus sites?
Comece o seu teste gratuito hoje.