Acerca de este problema HTML
El atributo http-equiv acepta un conjunto específico de valores predefinidos, y el validador verifica tanto el valor en sí como su formato. Cuando el validador reporta un valor incorrecto de ""Content-Security-Policy"" (observa las comillas duplicadas), significa que el valor real del atributo que se está analizando incluye caracteres de comillas literales como parte de la cadena. El navegador ve la primera " como la apertura del atributo, luego inmediatamente ve la segunda " como el cierre — resultando en una etiqueta malformada que no funcionará como se pretende.
Esto es importante por varias razones. Content-Security-Policy entregado a través de una etiqueta <meta> es un mecanismo de seguridad crítico que restringe qué recursos puede cargar tu página. Si la etiqueta está malformada, el navegador silenciosamente ignorará la política, dejando tu sitio sin las protecciones CSP que pretendías. No hay indicación visual de que la política falló en aplicarse, haciendo de este un error particularmente peligroso.
Las causas comunes de este problema incluyen:
-
Copiar código desde un procesador de texto o CMS que convierte comillas rectas (
") en comillas curvas/inteligentes ("y"). - Doble escape en plantillas donde un motor de plantillas añade comillas alrededor de un valor que ya tiene comillas en el marcado.
- Errores tipográficos manuales donde las comillas se duplican accidentalmente.
Para arreglar esto, abre tu código HTML fuente en un editor de texto plano (no un procesador de texto) y asegúrate de que el valor de http-equiv esté envuelto en exactamente un par de comillas dobles rectas estándar sin caracteres de comilla adicionales dentro.
Ejemplos
Incorrecto — comillas duplicadas alrededor del valor
<meta http-equiv=""Content-Security-Policy"" content="default-src 'self';">
El validador interpreta esto como un atributo http-equiv con un valor vacío (""), seguido de contenido no reconocido (Content-Security-Policy""), produciendo el error.
Incorrecto — comillas curvas/inteligentes
<meta http-equiv="Content-Security-Policy" content="default-src 'self';">
Las comillas inteligentes (" y ") no son delimitadores de atributo válidos en HTML. Se convierten en parte del valor del atributo mismo, causando que el validador lo rechace.
Incorrecto — comillas de entidad HTML dentro del atributo
<meta http-equiv=""Content-Security-Policy"" content="default-src 'self';">
Usar " dentro del valor del atributo incorpora caracteres de comilla literales en la cadena del valor, lo que lo hace inválido.
Correcto — un solo par de comillas dobles rectas
<meta http-equiv="Content-Security-Policy" content="default-src 'self';">
Correcto — ejemplo 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>
El valor de http-equiv Content-Security-Policy debe escribirse exactamente como se muestra — es insensible a mayúsculas y minúsculas según la especificación HTML, pero usar la capitalización canónica se recomienda para mayor claridad. Las directivas de política reales van en el atributo content, no en http-equiv. Si estás usando un motor de plantillas o CMS, verifica el código HTML fuente generado (a través de “Ver código fuente de la página” en tu navegador) para confirmar que la salida contenga comillas rectas limpias sin duplicación.
Encuentra problemas como este automáticamente
Rocket Validator escanea miles de páginas en segundos, detectando problemas de HTML en todo tu sitio web.
Más información: