CSP (Content Security Policy) es un mecanismo de seguridad del navegador que, mediante una cabecera HTTP, define desde qué orígenes una página puede cargar scripts, estilos y otros recursos, mitigando ataques como XSS.
Content Security Policy es un estándar web que permite al servidor indicarle al navegador qué fuentes de contenido son legítimas para una página. Se envía normalmente en la cabecera HTTP Código: text
Content-Security-Policy
(o en una etiqueta Código: text
<meta>
) y se compone de directivas como Código: text
default-src
, Código: text
script-src
, Código: text
style-src
, Código: text
img-src
o Código: text
frame-ancestors
. Si un recurso no cumple la política, el navegador lo bloquea. Existen variantes basadas en listas de dominios permitidos y las llamadas strict CSP, que usan nonces o hashes para autorizar solo scripts concretos; además, el modo Código: text
Content-Security-Policy-Report-Only
permite probar la política sin bloquear nada.
🧪Ejemplo
Un sitio que solo quiere ejecutar sus propios scripts y los que tengan un nonce generado en cada respuesta puede enviar: Código: text
. Así, si un atacante logra inyectar un Código: html
<script>
por un fallo de XSS, el navegador se niega a ejecutarlo porque no tiene el nonce válido.
🛡Cómo protegerse
Empezá con el modo Código: text
Report-Only
y una directiva de reporte para detectar qué se rompería antes de aplicar la política en serio.
Evitá Código: text
'unsafe-inline'
y Código: text
'unsafe-eval'
en Código: text
script-src
; preferí nonces aleatorios por respuesta o hashes.
Definí siempre Código: text
object-src 'none'
y Código: text
base-uri 'self'
(o Código: text
'none'
), y usá Código: text
frame-ancestors
para prevenir clickjacking.
No confíes en listas amplias de dominios (CDN públicos, comodines como Código: text
*.ejemplo.com
): pueden alojar scripts que permiten saltear la política.
Revisá la política con herramientas de análisis de cabeceras y volvé a evaluarla cada vez que agregues recursos de terceros.
⚠Para tener en cuenta
CSP es una defensa en profundidad, no un reemplazo de validar entradas y escapar salidas: una política mal configurada da una falsa sensación de seguridad. Tampoco frena la inyección en sí, sino que limita lo que el código inyectado puede hacer en el navegador.
Redactado con el asistente Underc0de IA. Actualizado el 15/11/2026. ¿Ves un error o querés sumar algo? Contanos en el foro.