Åtgärda bristande skydd mot Cross-App Scripting

Den här informationen är avsedd för utvecklare vars appar har en säkerhetsbrist som gör dem sårbara för Cross-App Scripting.

Detta händer

I minst en av dina appar finns ett problem som rör Cross-App Scripting i en WebView. Säkerhetsbristen kan leda till att skadliga appar kan stjäla användarcookies och annan data. Läs mer i meddelandet på Play ConsoleAlla appar där säkerhetsbristen inte har åtgärdats kan tas bort från Google Play efter det datum som anges på Play Console.

Åtgärd som krävs​

  1. Logga in på Play Console och öppna avsnittet Varningar. Där ser du vilka appar som berörs av problemet och vilket datum det måste vara åtgärdat.
  2. Uppdatera de berörda apparna och åtgärda säkerhetsbristen.
  3. Skicka in uppdaterade versioner av de berörda apparna.

Medan granskningen pågår har appen eller appuppdateringen statusen väntar på publicering. Om uppdateringen inte gjordes korrekt kommer varningen att kvarstå.

Ytterligare information

En WebView där JavaScript är aktiverat och som läser in data från ett osäkert intent kan luras av skadliga appar så att JavaScript-kod kan köras i en osäker kontext. Vi rekommenderar att du förhindrar sårbarheten på något av följande sätt:

Alternativ 1: Kontrollera att de berörda aktiviteterna inte exporteras

Titta efter aktiviteter (klassen Activity) som har en WebView som berörs av problemet. Om sådana aktiviteter inte behöver kunna ta emot några intent från andra appar kan du ställa in android:exported=false för varje sådan Activity i manifestet. Därmed säkerställer du att skadliga appar inte kan skicka skadlig indata till någon WebView i dessa aktiviteter.

Alternativ 2: Skydda WebView i exporterade aktiviteter

Om du vill ställa in en Activity med en utsatt WebView som exporterad rekommenderar vi att du gör följande ändringar:

  1. Skydda anrop till evaluateJavascript och loadUrl

    Se till att parametrar till evaluateJavascript alltid är säkra. Om evaluateJavascript anropas med indata utan restriktioner från ett intent som inte är säkert kan en angripare köra skadliga skript i den WebView som påverkas. På samma sätt kan angripare köra skadliga skript om loadUrl anropas med indata utan restriktioner som innehåller webbadresser med schemat javascript:

  2. Förhindra osäkra filinläsningar

    Se till så att en WebView som berörs inte kan läsa in cookie-databasen. En WebView som utan restriktioner läser in webbadresser med protokollet file:// från ett intent som inte är säkert kan angripas av skadliga appar i två steg. Första steget: en skadlig webbsida kan lägga in <script>-taggar i cookie-databasen. Andra steget: Den ändrade cookie-databasfilen kan läsas in om en skadlig app skickar ett intent med en webbadress med protokollet file:// som pekar på din WebViews cookie-databas eller om den skadliga webbsidan omdirigerar din WebView till filens webbadress. Det skadliga <script> som lagras i cookie-databasen läses in och körs och kan stjäla information om sessionen.

    Du kan säkerställa att en WebView som berörs inte kan läsa in cookie-databasen för WebView på två sätt.

    1. Inaktivera all filåtkomst.
    2. Kontrollera att endast webbadresser med protokollet file:// läses in i denna WebView och verifiera att alla webbadresser med protokollet file:// som läses in pekar på säkra filer. Observera att en angripare kan lura kontroller av webbadressens sökväg med en symbolisk länk. Du förhindrar detta genom att kontrollera kanoniska sökvägar som tillhör webbadresser med protokollet file:// innan de läses in i stället för att bara kontrollera webbadressens sökväg.
    3. Om du vill tillåta webbadresser med både file:// och http:// som webbadressprotokoll implementerar du file://-webbadressverifiering med shouldOverrideUrlLoading och shouldInterceptRequest i WebViewClient. Detta säkerställer att alla webbadresser som läses in i WebView är verifierade, inte bara de webbadresser som tillhandahålls direkt i ett loadUrl()-funktionsanrop.

Vi hjälper gärna till
Om du har tekniska frågor som handlar om säkerhetsbristen kan du ställa dem på Stack Overflow. Använd taggen android-security. Om du behöver mer information om hur du åtgärdar problemet kontaktar du vårt supportteam för utvecklare.

false
Huvudmeny
12994926135771883444
true
Sök i hjälpcentret
true
true
true
true
true
5016068
false
false