Procedimientos recomendados para desarrollar aplicaciones webview2 seguras

El control WebView2 permite a los desarrolladores hospedar contenido web en las aplicaciones nativas. Cuando se usa correctamente, hospedar contenido web ofrece varias ventajas, como el uso de la interfaz de usuario basada en web, el acceso a las características de la plataforma web, el uso compartido de código entre plataformas, entre plataformas, y así sucesivamente. Para evitar vulnerabilidades que pueden surgir al hospedar contenido web, asegúrese de diseñar la aplicación WebView2 para supervisar estrechamente las interacciones entre el contenido web y la aplicación host.

  1. Trate todo el contenido web como inseguro.
    • Valide los mensajes web y los parámetros del objeto host antes de consumir cada uno, ya que los mensajes y parámetros web pueden estar malformados (de forma involuntaria o malintencionada) y provocar que la aplicación se comporte inesperadamente.
    • Compruebe siempre el origen del documento que se ejecuta dentro de WebView2 y evalúe la fiabilidad del contenido.
  2. Diseñe mensajes web específicos e interacciones de objetos host en lugar de usar servidores proxy genéricos.
  3. Establezca las siguientes opciones para restringir la funcionalidad de contenido web modificando ICoreWebView2Settings (Win32) o CoreWebView2Settings (.NET).
    • Se establece en , si no espera que el AreHostObjectsAllowed contenido web tenga acceso a objetos false host.
    • Establezca en , si no espera que el contenido IsWebMessageEnabled web publique mensajes web en la aplicación false nativa.
    • Se establece en , si no espera que el contenido web ejecute IsScriptEnabled false scripts (por ejemplo, al mostrar contenido html estático).
    • Establezca en , si no espera que el AreDefaultScriptDialogsEnabled contenido web se muestre o cuadros de false alert prompt diálogo.
  4. En los pasos siguientes, use los NavigationStarting eventos y para actualizar la configuración según el origen de la nueva FrameNavigationStarting página.
    1. Para evitar que la aplicación vaya a determinadas páginas, use los eventos para comprobar y, a continuación, bloquear la navegación de páginas o fotogramas.
    2. Al navegar a una página nueva, es posible que deba ajustar los valores de propiedad en ICoreWebView2Settings (Win32) o CoreWebView2Settings (.NET) como se describió anteriormente.
  5. Al navegar a un nuevo documento, use el ContentLoading evento para quitar objetos host expuestos mediante RemoveHostObjectFromScript .