Remediação para a vulnerabilidade de injeção de interface JavaScript

Estas informações são destinadas a desenvolvedores de apps com a vulnerabilidade de injeção de interface JavaScript.

O que está acontecendo

Consulte o aviso no Play ConsoleApós os prazos exibidos no Play Console, todos os apps com vulnerabilidades de segurança não corrigidas poderão ser removidos do Google Play.

Ação necessária​

  1. Faça login no Play Console e acesse a seção "Alertas" para ver os apps afetados e os prazos para resolver os problemas.
  2. Atualize esses apps e corrija a vulnerabilidade.
  3. Envie as versões atualizadas dos apps afetados.

Após o reenvio, seu app será revisado novamente. Esse processo pode levar várias horas. Se o app for aprovado na revisão e publicado, nenhuma outra ação será necessária. Se ele for reprovado, a nova versão não será publicada, e você receberá uma notificação por e-mail.

Detalhes adicionais

Os WebViews que expõem objetos no nível do app ao código JavaScript por meio de addJavascriptInterface e carregam conteúdo não confiável da Web estão vulneráveis a JavaScript Interface Injection. Esse conteúdo pode executar qualquer método dos objetos expostos anotados com @JavascriptInterface, levando à corrupção ou ao vazamento de dados ou até mesmo à execução de código arbitrário.

Recomendamos evitar essa vulnerabilidade com um dos métodos a seguir:

Opção 1: impedir que os WebViews adicionem objetos à interface JavaScript

Garanta que nenhum objeto seja adicionado à interface JavaScript dos WebViews que carregam conteúdo não confiável da Web. Há duas maneiras de fazer isso:

 

Impeça a adição de objetos à interface JavaScript por meio de chamadas para addJavascriptInterface.

  1. Remova objetos da interface JavaScript em shouldInterceptRequest por meio de removeJavascriptInterface antes que o conteúdo não confiável seja carregado pelo WebView.

Opção 2: impedir que os WebViews carreguem conteúdo da Web que não seja confiável

Se for preciso que o app exponha objetos à interface JavaScript de um WebView, impeça esse WebView de carregar o conteúdo da Web em uma conexão não criptografada. É possível definir android:usesCleartextTraffic como "false" no Manifest ou usar uma configuração de segurança de rede que proíba o tráfego HTTP. Como alternativa, você pode impedir todos os WebViews afetados de carregar URLs com esquemas HTTP por meio do loadUrl.


Impeça os WebViews com interfaces JavaScript de carregar URLs não verificados de fontes duvidosas (por exemplo, URLs de intents não confiáveis).

Estamos aqui para ajudar

Se você tiver dúvidas técnicas sobre a vulnerabilidade, escreva uma postagem no Stack Overflow (em inglês) e use a tag "android-security". Se precisar de mais informações sobre as etapas necessárias para resolver esse problema, entre em contato com nossa equipe de suporte ao desenvolvedor.

Isso foi útil?
Como podemos melhorá-lo?