LEARN · CSP
Content-Security-Policy (CSP)
Qué es una CSP, por qué unsafe-inline la debilita y cómo empezar con una política restrictiva.
QUÉ ES
La CSP es una cabecera que dice al navegador de dónde puede cargar scripts, estilos, imágenes o marcos tu web. Todo lo que no esté permitido, se bloquea. Con frame-ancestors también decides quién puede incrustar tu web.
POR QUÉ IMPORTA
Si alguien consigue inyectar código en tu web (XSS), una buena CSP impide que se ejecute o que envíe datos fuera. No sustituye a corregir los fallos: limita el daño.
ERRORES FRECUENTES
- Permitir 'unsafe-inline' o 'unsafe-eval' en scripts (anula gran parte de la protección).
- Listas enormes de dominios «por si acaso».
- Activarla de golpe sin probar: empieza con Content-Security-Policy-Report-Only.
EJEMPLO
Content-Security-Policy: default-src 'self'; img-src 'self' data:; object-src 'none'; base-uri 'self'; frame-ancestors 'self'
CÓMO LO COMPROBAMOS
- HDR_CSP v1.0.0 — Si existe una CSP y si permite `unsafe-inline` o `unsafe-eval` en scripts.
- HDR_CLICKJACKING v1.0.0 — Que se impide incrustar la web en marcos ajenos (`X-Frame-Options` o CSP `frame-ancestors`).