Content Security Policy (CSP)
Contexto
Content Security Policy es una estándar de ciberseguridad que permite controlar el origen del contenido que se carga en una página web, con lo cual es posible mitigar muchos ataques basados en inyección de código o contenido; entre los cuales puede mencionarse XSS y clickjackin.
Su configuración puede realizarse mediante una etiqueta meta o mediante una cabecera HTTP, siendo este último método el más recomendado porque habilita todo el potencial de la herramienta
Configuración
Básicamente, la forma más simple y completa de configurarlo es la siguiente:
Content-Security-Policy" "default-src 'self'; frame-ancestors 'none'; form-action 'none'
La directiva así configurada, hace que el sitio solo puede cargar contenido del mismo dominio (Excluye implícitamente subdominios). es default-src del que se configuran la mayoría de las demás directivas, excepto las otras dos que le acompañan: frame-ancestor, que vuelve obsoleta a la cabecera X-Frame-Options y form-action (TODO, una investigación más exhaustiva es necesaria)
Otras directivas que podrían necesitar un configuración diferente a la por defecto podrían ser:
font-src: Define fuentes válidas para fuentes de letras que son cargadas mediante @font-faceconnect-src: Se aplica aXMLHttpRequest,WebSocket,fetch(),<a ping>y aEventSource. TODO: Es necesario una investigación más exhaustiva
NGINX
add_header "Content-Security-Policy" "default-src 'self'; frame-ancestors 'none'; form-action 'none'";
Resultado
Se ha configurado la cabecera anterior en un sitio objetivo.sanidad.gob.sv en nginx, en el cual hay un página contenido.php con lo mínimo:

Ahora puede verse como, de las dos imagenes, la segunda no se ha cargado, y en las herramientas de desarrollador, aparece un mensaje de bloqueo

Además, no es posible cargarla desde otro dominio colector.sanidad.gob.sv, que tiene una página fake.php con el siguiente contenido mínimo:

El mensaje de error ha variado un poco, pero es la misma idea:

Fuentes
- Content Security Policy (CSP)
- Content Security Policy Reference
- Cross Site Scripting (XSS)
- How XSS Payloads Work with Code Examples, and How to Prevent Them