Denne informasjonen er beregnet på utviklere som har apper som inneholder et sikkerhetsproblem med kapring via intent-protokollen.
Hva skjer?
Én eller flere av appene dine inneholder et problem med kapring via intent-protokollen. Med dette problemet kan ondsinnede nettverk og nettsteder få tilgang til private appkomponenter. Les varselet i Play-konsollen. Alle apper som inneholder uløste sikkerhetsproblemer, kan bli fjernet fra Google Play etter tidsfristene som vises i Play-konsollen.
Dette må du gjøre
-
Logg på Play-konsollen og gå til Varsler-delen for å se hvilke apper som er berørt, samt tidsfristene for å løse de aktuelle problemene.
-
Oppdater de berørte appene dine ved å følge trinnene nedenfor.
-
Send inn de oppdaterte versjonene av de berørte appene.
Hvis du sender apper inn igjen, blir de vurdert på nytt. Denne prosessen kan ta flere timer. Hvis appene godkjennes etter gjennomgangen og publiseres, trenger du ikke å gjøre noe mer. Hvis de ikke godkjennes, blir ikke de nye appversjonene publisert, og du mottar et varsel på e-post.
Flere detaljer
WebViews som går til ikke-klarert nettinnhold, parser intent://-linker med Intent.parseUri og sender disse intensjonselementene med startActivity, er sårbare for kapring via intent-protokollen. Slike WebViews kan bli lurt av skadelig nettinnhold til å sende vilkårlige intensjonselementer til komponenter i private apper. Dette kan føre til sikkerhetsbrudd i apper, for eksempel tyveri av private appdata som manipuleres av slike komponenter. Vær oppmerksom på at ikke-klarert nettinnhold inkluderer innhold fra klarerte domener som er lastet inn via HTTP.
Vi anbefaler at du forhindrer dette sikkerhetsproblemet på én av disse måtene:
Alternativ 1: Sørg for at WebViews ikke kan sende vilkårlige intensjonselementer
Apper kan begrense intensjonselementer som er laget med Intent.parseUri, så de bare kan sendes som implisitte intensjonselementer til komponenter med gjennomsøkbare (BROWSABLE) intensjonsfiltre. Dette kan gjøres med denne koden:
// convert Intent scheme URL to Intent object
Intent intent = Intent.parseUri(url);
// forbid launching activities without BROWSABLE category
intent.addCategory("android.intent.category.BROWSABLE");
// forbid explicit call
intent.setComponent(null);
// forbid Intent with selector Intent
intent.setSelector(null);
// start the activity by the Intent
view.getContext().startActivity(intent, -1);
Alternativ 2: Sørg for at WebViews ikke laster inn ikke-klarert nettinnhold
Hvis en WebView må parse vilkårlige intent://
-nettadresser, må du sørge for at den ikke laster inn ikke-klarert nettinnhold. Ikke-klarert nettinnhold inkluderer nettinnhold som er lastet inn via en ukryptert tilkobling. Utviklere kan sette android:usesCleartextTraffic
til «false» (usann) i manifestet eller angi en Network Security Config som ikke tillater HTTP-trafikk. Alternativt kan de sikre at eventuelle berørte WebViews ikke laster inn nettadresser med HTTP-protokoller ved hjelp av loadUrl
.
Vi anbefaler også at utviklere sørger for at berørte WebViews ikke laster inn ubegrensede nettadresser som er hentet fra ikke-klarerte kilder (f.eks. nettadresser som kommer fra ikke-klarerte intensjonselementer).
Vi hjelper deg gjerne
Hvis du har tekniske spørsmål om dette sikkerhetsproblemet, kan du legge dem ut på Stack Overflow med etiketten «android-security». Hvis du vil ha mer informasjon om hva du må gjøre for å løse dette problemet, kan du kontakte brukerstøtteteamet vårt for utviklere.