Introducción a ASP.NET Web Forms

El modelo de Web Forms y cómo crear páginas y usar controles.

¿Por qué se bloquean los recursos externos de mi página en Web Live Preview?

Si tiene algún recurso externo de un dominio de terceros que se encuentra en la página, es posible que observe que el diseñador de Web Live Preview les ha impedido cargarlos y muestra esta notificación del sistema:

Blocked Resources Toast

Es posible que se pregunte por qué se han bloqueado la carga de los recursos en el diseñador y por qué se muestra la notificación del sistema. En este artículo se explica por qué se han bloqueado los recursos.

Web Live Preview (WLP) es una extensión de Visual Studio basada en BrowserLink. WLP usa BrowserLink para proporcionar un canal para la comunicación bidireccional entre Visual Studio y el diseñador. Esta comunicación bidireccional permite a WLP proporcionar muchas características:

  • Sincronizar el contenido y el nodo seleccionado actualmente en el diseñador con el del editor.
  • Insertar contenido nuevo creado desde el diseñador en el editor.
  • Ejecutar comandos del Panel de acciones.

Si inserta scripts o recursos de un tercero en la página web, esto podría exponerle a una posible vulnerabilidad de seguridad mediante WLP y BrowserLink para realizar un ataque de scripting entre sitios (XSS).

Si un recurso de terceros puede insertar código malintencionado en el sitio, el código podría usar el script Browser Link insertado en el diseñador para volver a realizar llamadas a Visual Studio. El script insertado podría permitir que el código escriba contenido arbitrario en archivos abiertos en Visual Studio o abrir otros vectores de ataque.

Actualmente, no hay ninguna buena manera de evitar que los atacantes se comuniquen a través del script BrowserLink a Visual Studio.

Mitigación de vulnerabilidades de seguridad

En la medida de lo posible, hemos limitado y mitigado las vulnerabilidades de seguridad de la comunicación a través del script BrowserLink a Visual Studio. Sin embargo, algunos ataques pueden seguir siendo posibles a través de un ataque XSS.

Para reducir la posibilidad de este ataque XSS, de forma predeterminada, WLP impide que se carguen todos los recursos externos. Si se bloquea algún recurso externo, WLP muestra la siguiente notificación del sistema en la esquina superior derecha del diseñador:

Blocked Resources Toast

(En este ejemplo, usamos el siguiente SVG, que es un recurso externo que se usa en una aplicación web de ejemplo: https://visualstudio.microsoft.com/wp-content/uploads/2021/10/Product-Icon.svg)

Si se abre la ventana DevTools de Microsoft Edge, también puede observar el siguiente mensaje que explica por qué no se pudo cargar un recurso externo:

Blocked Resources Message DevTools

En la notificación del sistema del diseñador, si selecciona el vínculo haga clic aquí, aparecerá el siguiente cuadro de diálogo, con los dominios de los recursos bloqueados agregados automáticamente a la lista del cuadro de diálogo:

Allow Domains

Los recursos procedentes de dominios externos almacenados en la lista del cuadro de diálogo no se bloquearán de forma predeterminada en WLP y se cargarán como de costumbre. Después de hacer clic en Aceptar, el diseñador vuelve a cargar la página y carga los recursos bloqueados previamente cuyos dominios se agregaron al cuadro de diálogo. Asegúrese de que solo permite que los dominios externos que haya comprobado sean confiables y seguros.

Al hacer clic en el vínculo Web Live Preview: dominios externos en la notificación del sistema se abre el mismo cuadro de diálogo, pero no se agregará ninguno de los dominios de los recursos bloqueados en el cuadro de diálogo:

Allow Domains without Add

También puede acceder al cuadro de diálogo a través de la configuración Tools -> Options -> Web Live Preview -> Allowed external domains during design. La configuración del cuadro de diálogo es por instancia instalada de Visual Studio.

Tools Options Blocked Resources

Advertencia

Permitir que los dominios no se bloqueen de forma predeterminada podría exponerle al ataque XSS mencionado anteriormente. De nuevo, se recomienda encarecidamente permitir solo los dominios externos que puede comprobar que son de confianza y seguros.