Categoría: Desarrollo

Generador de CSP

Idea propia¿Falta una herramienta?

Crea una cabecera Content-Security-Policy a partir de directivas

Define la lista de fuentes para cada directiva de Content-Security-Policy —default-src, script-src, style-src y más— y obtén el valor final de la cabecera junto con una tabla legible de lo que permite cada directiva. Se genera localmente en tu navegador.

DirectivaFuentes
default-src'self'
script-src'self'
style-src'self' 'unsafe-inline'
img-src'self' data:
font-src'self'
connect-src'self'
frame-ancestors'none'
object-src'none'
base-uri'self'
form-action'self'
upgrade-insecure-requests
Cabecera Content-Security-Policy
default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-ancestors 'none'; object-src 'none'; base-uri 'self'; form-action 'self'; upgrade-insecure-requests;

Todo lo de esta página se procesa en tu navegador. No se sube nada.

Para qué sirve

Una cabecera Content-Security-Policy indica al navegador desde qué orígenes puede cargar una página scripts, estilos, imágenes y otros recursos, y es una de las defensas más eficaces contra los ataques de cross-site scripting. Cada directiva admite una lista de fuentes separadas por espacios, como 'self', 'unsafe-inline', https: o un dominio concreto, y acertar con la sintaxis a mano resulta engorroso. Esta herramienta genera la cabecera a partir de un campo por directiva y muestra la misma política en forma de tabla para que puedas revisar exactamente qué estás permitiendo antes de publicarla.

Cómo se usa

  1. Define la lista de fuentes para cada directiva que quieras restringir.
  2. Activa upgrade-insecure-requests o block-all-mixed-content si lo necesitas.
  3. Revisa la tabla de directivas y copia el valor de la cabecera.
  4. Envíala como cabecera de respuesta Content-Security-Policy, o empieza con Content-Security-Policy-Report-Only mientras haces pruebas.

Privacidad

Esta herramienta funciona íntegramente en tu navegador. Lo que introduces nunca se sube, se guarda ni se comparte: al cerrar la pestaña desaparece.

Preguntas frecuentes

¿Qué significa dejar una directiva vacía?
Una directiva que dejas en blanco aquí se omite por completo de la cabecera, lo que normalmente hace que recaiga en default-src. Define primero default-src con una base razonable como 'self'.
¿Debería probar primero con Report-Only?
Sí: enviar el mismo valor de cabecera como Content-Security-Policy-Report-Only te permite ver qué habría bloqueado la política, a través de la consola del navegador o de un report-uri, sin romper la página mientras la ajustas.
¿La política se envía a algún sitio para generarse?
No. La cadena de la cabecera se genera a partir de tus datos directamente en el navegador.