Solucions per a la vulnerabilitat d'injecció d'interfície en JavaScript

Aquesta informació va dirigida als desenvolupadors d'aplicacions que contenen la vulnerabilitat d'injecció d'interfície en JavaScript.

Què passa

Consulta l'avís a Play Console. Després de les dates límit que es mostren a Play Console, és possible que les aplicacions que presentin vulnerabilitats de seguretat sense solucionar se suprimeixin de Google Play.

Acció necessària​

  1. Inicia la sessió a Play Console i navega per la secció Alertes per consultar quines aplicacions es veuen afectades i les dates límit per resoldre aquests problemes.
  2. Actualitza les aplicacions afectades i soluciona la vulnerabilitat.
  3. Envia les versions actualitzades de les aplicacions afectades.

Un cop hagis l'hagis tornat a enviar, tornarem a revisar la teva aplicació. Aquest procés pot tardar diverses hores. Si l'aplicació passa la revisió i es publica correctament, no cal dur a terme cap altra acció. Si l'aplicació no passa la revisió, no se'n publicarà la versió nova i rebràs una notificació per correu electrònic.

Detalls addicionals

Les WebViews que exposen els objectes de nivell d'aplicació a codi JavaScript amb addJavascriptInterface i que carreguen contingut web que no és de confiança són vulnerables a JavaScript Interface Injection. El contingut que no és de confiança pot executar qualsevol dels mètodes dels objectes exposats anotats amb @JavascriptInterface, la qual cosa pot comportar que les dades es filtrin o es corrompin, o fins i tot que s'executi un codi arbitrari.

Et recomanem que evitis aquesta vulnerabilitat d'una de les maneres següents:

Opció 1: assegura't que les WebViews no afegeixin objectes a la interfície de JavaScript

Assegura't que no hi hagi objectes afegits a la interfície de JavaScript de qualsevol WebView que carregui contingut web que no sigui de confiança. Ho pots fer de dues maneres:

 

Assegura't que no s'afegeixin mai objectes a la interfície de JavaScript amb crides a addJavascriptInterface.

  1. Suprimeix els objectes de la interfície de JavaScript a shouldInterceptRequest a través de removeJavascriptInterface abans que la WebView carregui contingut que no és de confiança.

Opció 2: assegura't que les WebViews no carreguin contingut web que no sigui de confiança

Si l'aplicació necessita exposar objectes a la interfície de JavaScript d'una WebView, assegura't que la WebView no carregui contingut web a través d'una connexió que no estigui encriptada. Pots establir android:usesCleartextTraffic en "false" al teu manifest o establir una Network Security Config que no permeti el trànsit HTTP. També pots assegurar-te que cap WebView afectada no carregui URL amb esquemes HTTP a través de loadUrl.


Assegura't que les WebViews amb interfícies de JavaScript no carreguin URL no verificats obtinguts a partir de fonts no fiables (per exemple, URL obtinguts a partir d'intents que no siguin de confiança).

Som aquí per ajudar-te

Si tens cap dubte tècnic sobre la vulnerabilitat, pots publicar les teves preguntes a Stack Overflow amb l'etiqueta "android-security". Per aclarir els passos que has de seguir per resoldre aquest problema, pots contactar amb el nostre equip d'assistència per a desenvolupadors.