Denne informasjonen er myntet på utviklere med apper som bruker usikre implementeringer av PreferenceActivity-klasser, noe som gjør dem utsatt for «Fragment Injection». Slike implementeringer kan gjøre det mulig for skadelige eksterne apper å laste inn fragmenter som skal være private.
Hva skjer?
Fra og med 1. mars 2017 begynte Google Play å blokkere publisering av nye apper eller oppdateringer der PreferenceActivity-klassene kan være sårbare for «Fragment Injection». Les varselet i Play Console. Alle apper som inneholder uløste sikkerhetssvakheter, kan bli fjernet fra Google Play etter tidsfristene som vises i Play Console.
Handling kreves
- Logg på Play Console 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, og løs sikkerhetssvakheten.
- 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 via e-post.
Flere detaljer
Der det er mulig, bør du angi exported=false for PreferenceActivity i Manifest. Dette hindrer eksterne apper i å sende intensjoner til denne klassen.
Hvis den sårbare PreferenceActivity skal eksporteres til eksterne apper, må du finne ut hvorfor klassen er sårbar og utføre tiltakene som trengs. Det finnes to muligheter:
-
Feil implementering av isValidFragment:
Sjekk om den sårbare klassen inneholder eller arver en implementering av isValidFragment som gjengir «true» (sann) på alle kodebaner. Hvis «true» blir gjengitt, må du oppdatere klassen for å se etter en liste over tillate fragmentklasser. Eksempel: Hvis PreferenceActivity skal tillate MyFragment-klasser og ingen andre fragmenter, bør du implementere en kontroll som denne:
public boolean isValidFragment(String fragmentName) {
return MyFragment.class.getName().equals(fragmentName);
}
-
targetSdkVersion er mindre enn 19 og implementerer ikke isValidFragment:
Hvis appen for øyeblikket angir targetSdkVersion i manifestet til en verdi under 19 og den sårbare klassen ikke inneholder noen implementering av isValidFragment, er sårbarheten arvet fra PreferenceActivity.
For å løse problemet bør utviklere oppdatere targetSdkVersion til 19 eller høyere. Hvis targetSdkVersion ikke kan oppdateres, bør utviklere implementere isValidFragment slik det er beskrevet under 1), for å se etter tillatte fragmentklasser.
Vær oppmerksom på at apper også må være i samsvar med distribusjonsavtalen for utviklere og retningslinjene for innhold.
Vi hjelper deg gjerne
Hvis du har tekniske spørsmål om sikkerhetsproblemet, kan du skrive et innlegg på Stack Overflow og bruke «android-security»-etiketten. Hvis du vil ha mer informasjon om hva du må gjøre for å løse dette problemet, kan du kontakte brukerstøtteteamet for utviklere.