1. ¿Qué es Content Security Policy (CSP)?
La Content Security Policy (CSP) es una cabecera de respuesta HTTP estandarizada por el W3C que autoriza únicamente fuentes de confianza para cargar y ejecutar contenido en el navegador.
Al restringir el origen de scripts, estilos y llamadas de red, la CSP constituye la defensa más robusta frente a Cross-Site Scripting (XSS) y robo de datos.
2. Desglose de Directivas Fundamentales
| DIRECTIVA | CONTROLA | VALOR SEGURO |
|---|---|---|
| default-src | Reserva para directivas de carga no especificadas | 'self' |
| script-src | Fuentes permitidas de ejecución JavaScript | 'self' 'nonce-...' |
| style-src | Orígenes autorizados de CSS e inline styles | 'self' 'unsafe-inline' |
| connect-src | Destinos válidos para Fetch, XHR y WebSockets | 'self' https://api.domain.com |
| frame-ancestors | Dominios autorizados a incrustar la página en <iframe> | 'none' |
3. Políticas Basadas en Nonce vs Hash
Las primeras versiones de CSP usaban listas de dominios permitidos, pero quedaron obsoletas debido a vulnerabilidades de omisión en CDNs públicas.
CSP Nivel 3 Estricto soluciona este problema mediante nonces criptográficos generados por cada petición:
4. Frame Ancestors vs X-Frame-Options
Aunque X-Frame-Options: DENY sigue vigente por compatibilidad, la directiva frame-ancestors de CSP es el estándar actual por su control granular sobre orígenes parentales.