Generador de Content Security Policy (CSP)

Crea una Content-Security-Policy directiva a directiva, expórtala como cabecera, meta etiqueta o configuración de Nginx o Apache, y recibe avisos de ajustes inseguros.

Cabecera de respuesta HTTP
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; upgrade-insecure-requests
Evaluación de la política
Las comprobaciones integradas no encontraron problemas.
Etiqueta HTML <meta>
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; upgrade-insecure-requests">
frame-ancestors, report-uri, report-to y sandbox no funcionan en una etiqueta <meta>, por eso se omitieron; envía la cabecera HTTP para usarlas.
Nginx
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; upgrade-insecure-requests" always;
Apache (.htaccess)
Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; upgrade-insecure-requests"
Importar una política existente
Empieza en modo solo informe (Content-Security-Policy-Report-Only) y revisa la consola del navegador antes de aplicar una política nueva. Estas comprobaciones son estáticas y se basan en las reglas habituales de los evaluadores de CSP; no ven los scripts reales de tus páginas.

¿Qué es Generador de CSP?

Este generador de CSP te ayuda a escribir una Content-Security-Policy que limita desde dónde pueden cargarse scripts, estilos, imágenes, frames y otros recursos. Parte de una política estricta, te deja editar cada directiva y evalúa el resultado en tiempo real, avisando de debilidades como 'unsafe-inline', fuentes de script comodín, object-src o base-uri ausentes y palabras clave sin comillas. También puedes importar una política existente.

Cómo usar Generador de CSP

  1. Parte de la Política inicial estricta o de Borrar todo.
  2. Edita las fuentes de cada directiva, p. ej. 'self' https://cdn.example.com.
  3. Activa o desactiva upgrade-insecure-requests y añade un report-uri si hace falta.
  4. Lee la evaluación de la política y corrige los hallazgos de gravedad alta y media.
  5. Copia la política como cabecera HTTP, meta etiqueta o línea de Nginx o Apache; o importa una política existente para analizarla.

Ejemplo

Entrada
Strict starter policy
Salida
Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none'; upgrade-insecure-requests

Cuándo usar Generador de CSP

Úsalo para redactar o revisar una CSP antes de desplegarla. Implanta las políticas nuevas primero con Content-Security-Policy-Report-Only y vigila las infracciones, porque una política estricta romperá los scripts en línea y los widgets de terceros que olvidaste permitir. Las comprobaciones son estáticas y no pueden ver qué scripts cargan realmente tus páginas.

Cómo funciona Generador de CSP

Las directivas se serializan en un orden fijo como name source source; …, omitiendo las vacías. La evaluación aplica reglas estáticas similares a las del CSP Evaluator de Google: palabras clave como self o none deben ir entre comillas; se señala un script-src (o default-src como alternativa) sin nonce/hash que contenga 'unsafe-inline', 'unsafe-eval', *, http:, https: o data:; object-src debería ser 'none'; y base-uri, frame-ancestors y form-action deberían estar definidas. La versión de meta etiqueta omite frame-ancestors, report-uri, report-to y sandbox, que los navegadores ignoran en las meta etiquetas.

Casos de Uso Comunes

  • Crear una primera CSP estricta para un sitio nuevo.
  • Auditar una política copiada de producción en busca de 'unsafe-inline' y comodines.
  • Añadir correctamente un host de analítica o de CDN a script-src.
  • Obtener la línea add_header exacta de Nginx para una política.

Preguntas Frecuentes

¿Por qué 'unsafe-inline' es un problema?

Permite cualquier script en línea, incluido uno inyectado a través de un fallo XSS, lo que anula el objetivo principal de la CSP. Usa nonces o hashes en su lugar.

¿Cabecera o meta etiqueta?

Es preferible la cabecera HTTP. Una meta etiqueta no puede usar frame-ancestors, report-uri ni sandbox, y solo se aplica al contenido que va después de ella.

¿Cómo pruebo sin romper mi sitio?

Envía la misma política como Content-Security-Policy-Report-Only; los navegadores informan de las infracciones en la consola sin bloquear nada.

Explora más categorías