JavaScript-felületi injekciós biztonsági rés kijavítása

Ez az információ olyan fejlesztőknek szól, akiknek az alkalmazásaikban JavaScript-felületi injekciós biztonsági rés található.

Mi történik?

Play Console felületén lévő értesítésben további információt találhatsz. A Play Console felületén látható határidők után eltávolítjuk a Google Playről azokat az alkalmazásokat, amelyekben még megtalálható a sebezhetőség.

Teendők​

  1. Jelentkezz be a Play Console felületén, majd tekintsd át az Értesítések oldalon az érintett alkalmazásokat és a problémák megoldásának határidőit.
  2. Készíts olyan frissítést az érintett alkalmazásokhoz, amely elhárítja a sebezhetőséget.
  3. Küldd be az érintett alkalmazások frissített verzióit.

A beküldés után alkalmazásodat ismét ellenőrizzük. A folyamat több órát is igénybe vehet. Ha az alkalmazás megfelel az ellenőrzésen, és ezt követően közzétesszük, nincs más teendőd. Ha az alkalmazás nem felel meg az ellenőrzésen, akkor nem tesszük közzé az új verziót, és e-mailben értesítést küldünk a fejleményről.

Részletek

Azok a WebView-elemek, amelyek az addJavascriptInterface segítségével alkalmazásszintű objektumokat tesznek JavaScript-kód által hozzáférhetővé, és nem megbízható internetes tartalmat töltenek be, sebezhetők a JavaScript-felületi injekcióval szemben. A betöltött nem megbízható tartalom végrehajthatja a hozzáférhető objektumok @JavascriptInterface jelzővel ellátott metódusait, ami adatszivárgáshoz és adatsérüléshez vezethet, illetve tetszőleges kód futtatását is lehetővé teheti.

Javasoljuk, hogy a sebezhetőséget az alábbi megoldások valamelyikével hárítsd el:

1. lehetőség: Biztosítsd, hogy a WebView-elemek ne adhassanak hozzá objektumokat a JavaScript-felülethez

Akadályozd meg, hogy a nem megbízható internetes tartalmakat betöltő WebView-elemek objektumokat adjanak JavaScript-felületükhöz. Ezt két módon teheted meg:

 

Biztosítsd, hogy az alkalmazás ne adhasson objektumokat a JavaScript-felülethez az addJavascriptInterface meghívásával.

  1. Távolítsd el az objektumokat a JavaScript-felületről a shouldInterceptRequest elemben a removeJavascriptInterface utasítással, mielőtt a WebView nem megbízható tartalmat töltene be.

2. lehetőség: Biztosítsd, hogy a WebView-elemek ne töltsenek be nem megbízható internetes tartalmakat

Ha valamely WebView JavaScript-interfészének mindenképpen objektumokhoz kell hozzáférnie, akkor biztosítsd, hogy a WebView ne tölthessen be internetes tartalmakat titkosítatlan kapcsolaton keresztül. Ehhez állítsd hamisra az android:usesCleartextTraffic attribútumot az alkalmazáshoz tartozó Manifest fájlban, vagy használj HTTP-forgalmat tiltó Network Security Config-fájlt. Alternatív megoldásként megakadályozhatod, hogy az érintett WebView-k HTTP sémát alkalmazó URL-eket töltsenek be a loadUrl segítségével.


Gondoskodj arról is, hogy a JavaScript-felülettel rendelkező WebView-elemek ne töltsenek be nem megbízható forrásokból (például nem megbízható intent elemekből) származó ellenőrizetlen URL-eket.

Örömmel segítünk!

A technikai kérdéseidet a Stack Overflow webhelyen, az „android-security” címke használatával teheted fel. Ha a probléma megoldásának lépéseire vonatkozóan szeretnél tisztázni valamit, vedd fel a kapcsolatot fejlesztőtámogatási csapatunkkal.