Cómo mitigar el XSS basado en DOM con Trusted Types

Los Trusted Types son una función de seguridad de la plataforma web que ayuda a prevenir ciertos ataques de XSS basados en el DOM, ya que bloquea los puntos de inserción riesgosos (como .innerHTML) para que no usen valores de cadena no validados. Si se bloquea un punto de inserción riesgoso, se genera un incumplimiento.

El encabezado Content-Security-Policy (CSP) utiliza la directiva require-trusted-types-for para aplicar Trusted Types.

Cómo falla la auditoría de Lighthouse

Advertencia del informe de Lighthouse que indica que faltaba el encabezado de respuesta de la CSP o la directiva de Trusted Types para mitigar el XSS basado en DOM.
Advertencia del informe de Lighthouse que indica que faltaba el encabezado de respuesta de la CSP o la directiva de Trusted Types para mitigar el XSS basado en DOM.

La auditoría se aprobará si el encabezado de CSP se establece junto con la directiva require-trusted-types-for y el script como su valor. La auditoría fallará si no se establece el encabezado de CSP o si se establece, pero falta la directiva de Trusted Types.

Configura un encabezado de CSP y una directiva de Trusted Types para mitigar el XSS basado en DOM

Los agentes de usuario utilizan la directiva require-trusted-types-for para controlar qué datos se pasan a las funciones de receptor de XSS del DOM. El valor script de esta directiva verifica que las funciones de receptor de la inyección de XSS de DOM solo acepten tipos generados por políticas de Trusted Types, en lugar de permitir cadenas:

Content-Security-Policy: require-trusted-types-for 'script';