Entiendo que, idealmente, CSP debería configurarse solo para respuestas de texto / html.
No es perjudicial establecerlo en cualquier otra respuesta también, especialmente si se puede engañar para que se represente en el contexto HTML.
¿Es suficiente agregar el encabezado de la política de seguridad de contenido (CSP) a la página de inicio de sesión o debería agregar el encabezado a cada & cada página?
CSP solo se aplica a la página donde está configurado. Por lo tanto, si un CSP solo se envía para la página de inicio de sesión, no se aplicará a ninguna otra página. Como probablemente esto no es lo que necesita, debe configurarlo en cada página.
No se encontró ninguna documentación de apoyo de csp para verificar esto.
MDN - Política de seguridad de contenido (CSP) - Usar CSP dice que CSP solo se usa para la página donde se establece:
La configuración de la Política de seguridad del contenido implica agregar el encabezado HTTP de la Política de seguridad del contenido a una página web y darle valores para controlar los recursos que el agente de usuario puede cargar para la página de .