Agregar automáticamente scripts de tema a CSP

A menudo vemos temas de soporte de personas que intentan agregar referencias de JavaScript externas a sus temas. De forma predeterminada, la política de seguridad de contenido bloqueará esto, y el administrador debe agregar manualmente el script a la configuración del sitio CSP (o a una configuración/modificador del tema).

Sin embargo, @Johani hizo una excelente sugerencia sobre cómo podemos mejorarlo.

En lugar de pedir a los desarrolladores de temas que copien y peguen cosas en la interfaz de administración, podemos hacer esto automáticamente. Podemos analizar todo el HTML en un tema, extraer el src de cualquier script externo y agregarlo a la CSP.

Después de todo, ¡las computadoras son mucho mejores en copiar y pegar repetidamente que los humanos!

Abrí un PR que implementa esto:

https://github.com/discourse/discourse/pull/9531

15 Me gusta

Estoy viendo algunos errores en la consola localmente:

image

En entornos de producción, también veo fuentes agregadas en el formato https://CDN_SERVER/theme-javascripts/31657759d037d8c06397e9965a1113169100846e.js..., lo cual es redundante, ya que la política ya tiene en lista blanca https://CDN_SERVER/theme-javascripts. ¿Quizás limitar la extensión automática solo a fuentes de scripts externos?

6 Me gusta

Gracias @pmusaraj, agregué algunas verificaciones adicionales para asegurarnos de no servir URLs inválidas en la CSP, y también me aseguré de que las URLs de theme-javascript estén excluidas:

7 Me gusta

Esto es increíble. @merefield, ¿no es super genial?

1 me gusta