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.
- 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.
- Diseñe mensajes web específicos e interacciones de objetos host en lugar de usar servidores proxy genéricos.
- 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
AreHostObjectsAllowedcontenido web tenga acceso a objetosfalsehost. - Establezca en , si no espera que el contenido
IsWebMessageEnabledweb publique mensajes web en la aplicaciónfalsenativa. - Se establece en , si no espera que el contenido web ejecute
IsScriptEnabledfalsescripts (por ejemplo, al mostrar contenido html estático). - Establezca en , si no espera que el
AreDefaultScriptDialogsEnabledcontenido web se muestre o cuadros defalsealertpromptdiálogo.
- Se establece en , si no espera que el
- En los pasos siguientes, use los
NavigationStartingeventos y para actualizar la configuración según el origen de la nuevaFrameNavigationStartingpágina.- 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.
- 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.
- Al navegar a un nuevo documento, use el
ContentLoadingevento para quitar objetos host expuestos medianteRemoveHostObjectFromScript.