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
comofalse
, se você não espera que o conteúdo da Web acesse objetos host.Defina
IsWebMessageEnabled
comofalse
, se você não esperar que o conteúdo da Web poste mensagens da Web no aplicativo nativo.Defina
IsScriptEnabled
comofalse
, se você não espera que o conteúdo da Web execute scripts (por exemplo, ao mostrar conteúdo HTML estático).Defina
AreDefaultScriptDialogsEnabled
comofalse
, se você não espera que o conteúdo da Web seja exibidoalert
ouprompt
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 eFrameNavigationStarting
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 eRemoveHostObjectFromScript
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.