Partilhar via


Desenvolver aplicativos WebView2 seguros

O controle WebView2 permite que os desenvolvedores hospedem conteúdo da Web nos aplicativos nativos. Quando usado corretamente, a hospedagem de conteúdo da Web oferece várias vantagens, como usar a interface do usuário baseada na Web, acessar recursos da plataforma Web, compartilhar código entre plataformas e assim por diante. Para evitar vulnerabilidades que podem surgir da hospedagem de conteúdo da Web, crie seu aplicativo WebView2 para monitorar de perto as interações entre o conteúdo da Web e o aplicativo host.

  • Tratar todo o conteúdo da Web como inseguro:

    • Valide mensagens da Web e parâmetros de objeto host antes de consumi-las, pois as mensagens e parâmetros da Web podem ser malformados (involuntariamente ou maliciosamente) e podem fazer com que o aplicativo se comporte inesperadamente.

    • Verifique sempre a origem do documento em execução no WebView2 e avalie a confiabilidade do conteúdo.

  • Crie mensagens da Web específicas e interações de objeto host, em vez de usar proxies genéricos.

  • Defina as seguintes opções para restringir a funcionalidade de conteúdo da Web, modificando iCoreWebView2Settings (Win32) ou CoreWebView2Settings (.NET):

    • Defina AreHostObjectsAllowed como false, se você não espera que o conteúdo da Web acesse objetos host.

    • Defina IsWebMessageEnabled como false, se você não esperar que o conteúdo da Web poste mensagens da Web no aplicativo nativo.

    • Defina IsScriptEnabled como false, se você não espera que o conteúdo da Web execute scripts (por exemplo, ao mostrar conteúdo HTML estático).

    • Defina AreDefaultScriptDialogsEnabled como false, se você não espera que o conteúdo da Web seja exibido alert ou prompt dialogs.

  • Atualizar configurações com base na origem da nova página:

    • Para impedir que seu aplicativo navegue até determinadas páginas, use os NavigationStarting eventos e FrameNavigationStarting para verificar a navegação da página ou do quadro e bloqueie condicionalmente a navegação.

    • Ao navegar até uma nova página, talvez seja necessário ajustar os valores de propriedade em ICoreWebView2Settings (Win32) ou CoreWebView2Settings (.NET), conforme descrito anteriormente.

  • Ao navegar até um novo documento, use o ContentLoading evento e RemoveHostObjectFromScript remova objetos host expostos.

  • O WebView2 não pode ser executado como um usuário do sistema. Essa restrição bloqueia cenários como a criação de um Provedor de Credencial.