Kako ispraviti izloženost ubacivanju fragmenata

Ove su informacije namijenjene razvojnim programerima s aplikacijama koje upotrebljavaju nesigurnu implementaciju PreferenceActivity klasa zbog kojih su izložene ubacivanju fragmenata. Takva implementacija može omogućiti zlonamjernoj vanjskoj aplikaciji da učita fragmente koji bi trebali biti privatni.

Što se događa

Od 1. ožujka 2017. Google Play počeo je blokirati objavljivanje svih novih aplikacija ili ažuriranja u kojima klase PreferenceActivity mogu biti izložene ubacivanju fragmenata (Fragment Injection). Pogledajte obavijest na Play konzoliAplikacije koje budu sadržavale neriješene sigurnosne ranjivosti nakon rokova prikazanih na vašoj Play konzoli mogu se ukloniti s Google Playa.

Potrebna je radnja​

  1. Prijavite se na Play Console i u odjeljku Upozorenja pogledajte koje su aplikacije podložne ranjivostima i koji su rokovi za rješavanje tih poteškoća.
  2. Ažurirajte zahvaćene aplikacije i uklonite ranjivosti.
  3. Pošaljite ažurirane verzije ranjivih aplikacija.

Nakon slanja ponovo ćemo pregledati vašu aplikaciju. Taj postupak može trajati nekoliko sati. Ako aplikacija prođe pregled i uspješno se objavi, ne morate više ništa poduzimati. Ako aplikacija ne prođe pregled, nova verzija aplikacije neće se objaviti i dobit ćete obavijest e-poštom.

Dodatne pojedinosti

Tamo gdje je to moguće, postavite exported=false za PreferenceActivity u manifestu. To će onemogućiti vanjskim aplikacijama da šalju namjere toj klasi.

Ako se ranjiva PreferenceActivity mora izvesti u vanjske aplikacije, utvrdite zašto je klasa ranjiva i učinite ono što je potrebno. Imate dvije mogućnosti:

  1. Netočna implementacija metode isValidFragment:

Provjerite sadrži li ili nasljeđuje li ranjiva klasa implementaciju metode isValidFragment koja vraća True na svim putovima koda. Ako je to točno, ažurirajte klasu tako da provjerava popis klasa fragmenata koje se mogu dopustiti. Na primjer: ako PreferenceActivity treba dopustiti MyFragment klase i nijedan drugi fragment, provjeru implementirajte ovako:

         public boolean isValidFragment(String fragmentName) {
            return MyFragment.class.getName().equals(fragmentName);

         }

  1. targetSdkVersion niži je od 19 i ne implementira isValidFragment:

Ako aplikacija trenutačno postavlja targetSdkVersion u manifestu na vrijednost nižu od 19 i ranjiva klasa ne sadrži implementaciju metode isValidFragment, ranjivost se nasljeđuje od klase PreferenceActivity.

Da bi to ispravili, razvojni programeri trebaju ažurirati targetSdkVersion na 19 ili više. Ili, ako se targetSdkVersion ne može ažurirati, razvojni programeri trebaju implementirati isValidFragment kao što je opisano u 1. koraku tako da traži klase fragmenata koje se mogu dopustiti.

Napominjemo da aplikacije moraju biti u skladu i s Ugovorom o distribuciji za razvojne programere i Pravilima o sadržaju

Obratite nam se ako vam zatreba pomoć

Ako imate tehničkih pitanja o toj ranjivosti, možete objaviti post na Stack Overflowu uz oznaku "android-security". Ako vam je potrebno pojašnjenje postupka za rješavanje te poteškoće, možete se obratiti našem timu za podršku razvojnim programerima.

false
Glavni izbornik
3274908364108547025
true
Pretraži Centar za pomoć
false
true
true
true
true
true
5016068
false
false
false
false
false