Verificaciones automáticas contra errores comunes de CSP.
Generador de Content Security Policy
Completa las fuentes de cada directiva CSP para generar un valor de encabezado Content-Security-Policy y una etiqueta meta listos para usar.
Empieza desde un perfil
Elige un punto de partida y luego ajusta cada directiva abajo. Cambiar de perfil conserva lo que ya escribiste en las directivas que no menciona.
Política generada
Elige el formato que corresponde a dónde vas a implementar esto.
Content-Security-Policy-Report-Only: default-src 'self'; script-src 'self'; style-src 'self'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-src 'none'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'none';
Verifica si una URL determinada sería permitida bajo la directiva elegida, usando la política de arriba.
Cómo funciona
Ingresa tus datos
Completa los valores, pega el texto o sube el archivo que necesita esta herramienta.
Obtén el resultado al instante
La mayoría de las herramientas se actualizan mientras escribes; algunas usan un solo botón. De cualquier forma, el resultado aparece aquí mismo.
Usa tu resultado
Copia, descarga o comparte lo que genere la herramienta — el control siempre es tuyo.
¿Qué es Generador de Content Security Policy?
El Generador de Content-Security-Policy es una herramienta para construir una política CSP a partir de doce directivas agrupadas, con cuatro perfiles de partida, detección automática de debilidades comunes, soporte para informe de violaciones (Reporting-Endpoints y el report-uri heredado), exportación como header HTTP, Nginx, Apache o etiqueta <meta>, y un probador que verifica si una URL específica sería permitida o bloqueada por la política construida.
Cómo construir una Content-Security-Policy: perfiles, probador e informe de violaciones
Elige un perfil de partida (Inicial, SPA, Estricta o Bloqueada), ajusta cada directiva agrupada en Política principal, Destinos de solicitud y Navegación, y sigue los avisos automáticos de seguridad. Cambia entre los modos Solo informe y Aplicar, exporta como header HTTP, Nginx, Apache o etiqueta <meta>, y prueba si una URL específica sería bloqueada antes de publicarla.
Los cuatro perfiles de partida
"Inicial" es una base del mismo origen para un sitio típico renderizado en el servidor. "SPA" parte de ahí y agrega orígenes para XHR/WebSocket y web workers, para una aplicación de una sola página. "Estricta (nonce)" usa el marcador 'nonce-{RANDOM}' en script-src, que tu servidor debe sustituir por un nonce nuevo en cada solicitud — la protección más fuerte contra scripts inyectados. "Bloqueada" parte de la Estricta y también bloquea la etiqueta <base>, la más restrictiva de las cuatro. Cambiar de perfil solo modifica las directivas que ese perfil define — lo que ya escribiste en las directivas que no menciona se mantiene intacto.
Doce directivas agrupadas en tres bloques
"Política principal" reúne default-src (el fallback para cualquier directiva no definida explícitamente abajo), script-src y style-src. "Destinos de solicitud (fetch)" cubre img-src, font-src, connect-src y worker-src. "Navegación e incrustación" cubre frame-src, object-src, base-uri, form-action y frame-ancestors. Cada directiva activada tiene chips de "Agregar rápido" con valores comunes, además de un campo para un origen personalizado. Una directiva activada sin ningún origen genera 'none'; una directiva desactivada se omite de la política, y el navegador aplica el fallback correspondiente (normalmente default-src) en su lugar.
Solo informe o Aplicar, y los cuatro formatos de salida
"Solo informe" genera el encabezado Content-Security-Policy-Report-Only, que recolecta violaciones sin bloquear nada — seguro para publicar primero. "Aplicar" genera el encabezado Content-Security-Policy real, que bloquea activamente todo lo que quede fuera de la política. La salida puede exportarse como encabezado HTTP puro, una directiva add_header lista para Nginx, una directiva Header para Apache, o una etiqueta <meta> HTML. Elegir el formato <meta> cambia el modo a Aplicar automáticamente, porque una etiqueta meta de CSP siempre aplica la política y no admite frame-ancestors ni la configuración de informes.
Avisos automáticos de salud de la política
La herramienta revisa las directivas activadas contra seis problemas comunes: un origen comodín (*), que anula la mayor parte de la protección de CSP; 'unsafe-eval', que habilita eval() y new Function(); 'unsafe-inline', que permite script o estilo en línea; object-src sin fijar en 'none', el camino clásico de inyección vía plugins; base-uri no definida, que permite secuestrar URLs relativas con una etiqueta <base> inyectada; y frame-ancestors no definida, que deja la página vulnerable a clickjacking. Sin ninguno de estos problemas, la política se marca como sin debilidades evidentes.
Informe de violaciones: Reporting-Endpoints y el report-uri heredado
Al activar "Enviar informes de violación", indica la URL del endpoint (solo acepta https://, o http:// en localhost para pruebas) y un nombre de grupo Report-To — la herramienta genera el encabezado Reporting-Endpoints junto con la directiva report-to en la política. La opción "Emitir también la directiva heredada report-uri" agrega report-uri como canal alternativo para navegadores que aún no soportan la Reporting API más nueva.
Probar si una URL específica sería permitida
La sección "Probar un origen" elige un tipo de recurso y una URL, y evalúa el resultado contra la política actual siguiendo la misma cadena de fallback de CSP (una directiva sin regla propia cae en default-src). El resultado muestra si la URL sería bloqueada (sin orígenes, sin coincidencia, o solo 'self' — caso en el que la herramienta no conoce el origen real de tu página y pide verificación manual) o permitida (comodín, esquema https: u origen exacto). Es una aproximación deliberadamente simplificada, que no modela nonces, hashes ni orígenes basados en ruta.
Privacidad y los límites del probador
La construcción de la política, los avisos y el probador de origen se ejecutan en tu navegador — nada se envía a un servidor. Aun así, el probador es una aproximación simplificada del algoritmo real de CSP de los navegadores, no un motor completo: usa el modo Solo informe y las herramientas de desarrollador del navegador para confirmar el comportamiento real antes de aplicar la política en producción.
Preguntas frecuentes
¿Qué perfil debo elegir para empezar?
Inicial sirve para un sitio típico renderizado en el servidor, con recursos del mismo origen. SPA agrega orígenes para llamadas XHR/WebSocket y web workers, para una aplicación de una sola página. Estricta (nonce) da la protección más fuerte contra scripts inyectados, pero exige que tu servidor genere e inyecte un nonce nuevo en cada respuesta. Bloqueada parte de la Estricta y también bloquea la etiqueta <base>.
¿Qué significa el marcador {RANDOM} en el perfil Estricta?
Es un marcador de posición — tu servidor debe sustituir 'nonce-{RANDOM}' por un valor aleatorio nuevo en cada solicitud, y aplicar ese mismo valor en el atributo nonce de las etiquetas <script> que deban permitirse.
¿Por qué elegir la salida <meta> cambia el modo a Aplicar por sí solo?
Porque una etiqueta <meta> de CSP siempre aplica la política, nunca funciona en modo solo informe, y no admite frame-ancestors ni las directivas de informe de violaciones — la herramienta ajusta el modo automáticamente para reflejar esa limitación.
¿Las directivas desactivadas quedan fuera de la política final?
Sí — una directiva desactivada se omite por completo de la política, y el navegador aplica el fallback correspondiente (normalmente default-src) en su lugar. Eso es distinto de una directiva activada sin ningún origen, que genera explícitamente 'none' y bloquea todo de ese tipo.
¿El probador de origen es 100% preciso?
No — es una aproximación simplificada pensada para una verificación rápida, y no modela nonces, hashes ni orígenes basados en ruta. Úsalo como una primera señal, pero confirma el comportamiento real publicando la política en modo solo informe y observando la consola del navegador.
¿Cómo funciona el informe de violaciones?
La URL del endpoint y el nombre del grupo que indicas generan el encabezado Reporting-Endpoints y la directiva report-to en la política, que los navegadores modernos usan para enviar informes de violación. Activar la directiva heredada report-uri agrega un segundo canal de informes para navegadores que aún no soportan la Reporting API más nueva.
¿Los avisos de salud de la política impiden que se genere la política?
No — los avisos son solo informativos. La política se sigue generando, copiando y descargando con normalidad aunque haya debilidades señaladas; depende de ti decidir si cada una es aceptable para tu caso.
¿Qué diferencia hay entre cambiar de perfil y editar una directiva a mano?
Aplicar un perfil solo cambia las directivas que ese perfil define explícitamente — cualquier directiva que ya hubieras ajustado manualmente y que el perfil no mencione se mantiene exactamente igual.
Herramientas relacionadas
- PopularDisponibleLocal
Generador de Contraseñas
Genera contraseñas fuertes con la criptografía del navegador.
- PopularDisponibleLocal
Generador de Hash y Checksum de Archivos
Calcula hashes SHA-1, SHA-256, SHA-384 y SHA-512.
- DisponibleLocal
Visor y Eliminador de EXIF
Inspecciona los metadatos comunes de fotos y descarga una copia limpia.
- DisponibleLocal
Decodificador de Certificados X.509
Decodifica certificados PEM o DER localmente en el navegador.
- DisponibleLocal
Analizador de Cabeceras de Correo
Organiza las cabeceras de correo sin procesar en campos, ruta y resultados de autenticación reportados.
- DisponibleServidor
Verificador de Contraseñas Filtradas
Comprueba si una contraseña ha aparecido en un filtrado de datos conocido.
- DisponibleServidor
Escáner de Cabeceras de Seguridad
Escanea las cabeceras de respuesta HTTP de un sitio y califica su postura de seguridad.
- DisponibleServidor
Verificador de Certificado SSL/TLS
Haz un handshake TLS real contra un dominio y obtén una nota para el certificado, la cadena y el soporte de protocolos.
- DisponibleLocal
Generador de HMAC
Genera hashes HMAC con una clave secreta.
- DisponibleLocal
Generador de Claves SSH
Genera pares de claves SSH Ed25519, RSA o ECDSA con clave pública OpenSSH y huellas digitales.