Playbook · Seguridad web
CSP inicial sin romper la web
La Content-Security-Policy es útil, pero mal configurada puede romper scripts, formularios o integraciones. Guía orientativa para aplicarla con cuidado.
Qué es una CSP
La Content-Security-Policy (CSP) es una cabecera HTTP que le dice al navegador desde qué orígenes puede cargar scripts, estilos, imágenes y otros recursos. Sin CSP, el navegador acepta cualquier fuente, lo que facilita ataques de inyección de scripts (XSS).
Una CSP bien configurada no evita que la web sea atacada en el servidor, pero sí puede limitar el daño si se inyecta código malicioso en el cliente.
Paso 1 — Empieza en modo Report-Only
Report-Only solo reporta las violaciones sin bloquear nada. Tu web sigue funcionando igual, pero puedes ver qué se bloquearía si activases la política completa.
Cabecera Report-Only
Content-Security-Policy-Report-Only: default-src 'self'; script-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'Revisa la consola del navegador durante unos días para ver qué recursos de terceros estarías bloqueando (Analytics, fuentes, widgets, etc.).
Paso 2 — Ajusta según lo que uses
Google Analytics / GTM
script-src 'self' https://www.googletagmanager.com https://www.google-analytics.comGoogle Fonts
style-src 'self' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.comYouTube embed
frame-src https://www.youtube.comStripe
script-src 'self' https://js.stripe.com; frame-src https://js.stripe.comPaso 3 — Activa la política real
Cuando hayas verificado que la política Report-Only no bloquea nada legítimo, cambia la cabecera a Content-Security-Policy.
Si usas WordPress con muchos plugins, la CSP puede ser difícil de mantener porque los plugins inyectan scripts inline. En ese caso considera empezar solo con frame-ancestors 'none' y object-src 'none' como primeras directivas seguras.
¿Quieres que lo revisemos por ti?
El pack TrustFix CSP Inicial cubre la política básica en Report-Only, revisión de scripts externos y endurecimiento progresivo.