Odstranění chyby zabezpečení, která umožňuje vložení obsahu do rozhraní JavaScriptu

Tyto informace jsou určeny vývojářům aplikací, které nejsou zabezpečeny proti vložení obsahu do rozhraní JavaScriptu.

Co se děje

Další informace najdete v oznámení ve službě Play Console. Po termínech uvedených v Play Console mohou být aplikace s neopravenými chybami zabezpečení z Google Play odstraněny.

Vyžadovaná akce

  1. Přihlaste se do Play Console a přejděte do sekce Upozornění, kde zjistíte, kterých aplikací se tento problém týká a do kdy je potřeba jej vyřešit.
  2. Aktualizujte dotčené aplikace a chybu zabezpečení opravte.
  3. Odešlete aktualizované verze dotčených aplikací.

Po odeslání bude aplikace znovu zkontrolována. Tento proces může trvat několik hodin. Pokud aplikace při kontrole projde a bude úspěšně publikována, není potřeba podnikat žádné další kroky. Jestliže aplikace při kontrole neprojde, nová verze aplikace nebude publikována a obdržíte e‑mailem oznámení.

Další podrobnosti

Zobrazení WebView, která prostřednictvím metody addJavascriptInterface odhalují objekty na úrovni aplikace javascriptovému kódu a načítají z webu nedůvěryhodný obsah, jsou zranitelná vložením obsahu do rozhraní JavaScriptu (JavaScript Interface Injection). Nedůvěryhodný obsah může spustit jakoukoli metodu odhalených objektů s anotací @JavascriptInterface, což může vést k úniku či poškození dat nebo dokonce ke spuštění libovolného kódu.

Doporučujeme, abyste této chybě zabezpečení zabránili jedním z následujících způsobů:

Možnost 1: Zajistěte, aby zobrazení WebView do rozhraní JavaScriptu nepřidávala objekty

Zajistěte, aby zobrazení WebView, která načítají nedůvěryhodný webový obsah, nepřidávala do rozhraní JavaScriptu žádné objekty. Lze to provést dvěma způsoby:

 

Zajistěte, aby do rozhraní JavaScriptu nikdy nebyly přidávány objekty pomocí volání addJavascriptInterface.

  1. Než zobrazení WebView načte nedůvěryhodný obsah, odstraňte objekty z rozhraní JavaScriptu v požadavku shouldInterceptRequest pomocí metody removeJavascriptInterface.

Možnost 2: Zajistěte, aby zobrazení WebView nenačítala nedůvěryhodný webový obsah

Pokud vaše aplikace potřebuje v zobrazení WebView odhalovat objekty v rozhraní JavaScriptu, zajistěte, aby zobrazení WebView nenačítalo webový obsah přes nešifrované připojení. Můžete nastavit parametr android:usesCleartextTrafficManifestu na hodnotu false nebo můžete nastavit konfiguraci zabezpečení sítě, která nebude povolovat provoz přes HTTP. Případně můžete zajistit, aby dotčená zobrazení WebView pomocí metody loadUrl nenačítala žádné adresy URL se schématem HTTP.


Zajistěte, aby zobrazení WebView s rozhraními JavaScriptu nenačítala nezkontrolované adresy URL získané z nedůvěryhodných zdrojů (např. adresy získané z nedůvěryhodných objektů Intent).

Rádi vám pomůžeme

Máte-li jiné technické dotazy, publikuje příspěvek na webu Stack Overflow. Použijte štítky „android-security“. Pokud potřebujete poradit s jednotlivými kroky k řešení tohoto problému, obraťte se na náš tým podpory pro vývojáře.