Saltar al contenido

Generador CSP

Genera una política Content-Security-Policy lista para copiar, con snippet para Nginx y Apache.

Gratis y sin registro · Última revisión:

Generador de política CSP

Construye una Content-Security-Policy directiva a directiva — todo se calcula en tu navegador.

default-src

Origen por defecto para todo lo no especificado abajo.

script-src

Fuentes permitidas para JavaScript.

style-src

Fuentes permitidas para CSS.

img-src

Fuentes permitidas para imágenes.

font-src

Fuentes permitidas para tipografías.

connect-src

Destinos permitidos para fetch/XHR/WebSocket.

frame-src

Orígenes permitidos para iframes embebidos.

object-src

Orígenes para <object>/<embed> (recomendado: none).

base-uri

Restringe las URLs válidas para <base>.

form-action

Destinos permitidos para el envío de formularios.

Cabecera HTTP

Content-Security-Policy: default-src 'self'; object-src 'none';

Snippet Nginx

add_header Content-Security-Policy "default-src 'self'; object-src 'none';" always;

Snippet Apache (.htaccess)

Header always set Content-Security-Policy "default-src 'self'; object-src 'none';"

¿Qué es la Content-Security-Policy?

CSP es una cabecera HTTP que le dice al navegador de qué orígenes puede cargar scripts, estilos, imágenes u otros recursos. Es una de las defensas más efectivas contra XSS: aunque un atacante consiga inyectar HTML en tu web, el navegador bloqueará cualquier script que no venga de un origen explícitamente autorizado.

Preguntas frecuentes

¿Por qué evitar 'unsafe-inline'?

Permite ejecutar cualquier script o estilo puesto directamente en el HTML, que es exactamente el vector que CSP intenta bloquear. Úsalo solo como parche temporal mientras migras a scripts externos con nonce/hash.

¿Puedo probar la política sin bloquear nada?

Sí, envía la misma cabecera como "Content-Security-Policy-Report-Only" durante las pruebas: el navegador reporta lo que habría bloqueado sin bloquearlo de verdad.