Ove su informacije namijenjene razvojnim programerima aplikacija koje sadržavaju implicitnu namjeru na čekanju.
Što se događa
Jedna ili više vaših aplikacija sadrže problem u vidu implicitne namjere na čekanju koja može uzrokovati sigurnosne prijetnje u obliku odbijanja usluge, krađe privatnih podataka i eskalacije ovlasti. Pregledajte detaljne upute u nastavku kako biste riješili problem s aplikacijama. Lokacije korištenja implicitne namjere na čekanju u aplikaciji mogu se pronaći u obavijesti Play konzole za vašu aplikaciju. Ako lokacija završava s "(u dinamički učitanom kodu)", lokacija je u kodu koji dinamički učitavaju aplikacija ili biblioteke koje aplikacija upotrebljava. Aplikacije obično upotrebljavaju dinamički učitan kôd putem isporuke značajki na zahtjev, iako postoje i druge tehnike koje se ne preporučuju (neke tehnike koje se ne preporučuju također krše pravila Google Playa i ne smiju se koristiti). Osim toga, alati za pakiranje mogu pretvoriti aplikacijski kôd u dinamički učitan kôd.
Preporučujemo da riješite taj problem, no to nije obavezno. Postojanje ovog problema neće utjecati na status objavljivanja vaše aplikacije.
Dodatne pojedinosti
Android aplikacije šalju poruke među komponentama pomoću namjera. Namjere mogu navesti ciljanu komponentu (izričita namjera) ili navesti opću radnju i dopustiti operativnom sustavu da isporuči namjeru bilo kojoj komponenti na uređaju koji registrira filtar namjere koji odgovara toj radnji (implicitna namjera).
Namjere na čekanju su namjere dodijeljene drugoj aplikaciji za isporuku u budućnosti. Izrada implicitne namjere u sklopu namjere na čekanju sigurnosna je ranjivost koja može dovesti do odbijanja usluge, krađe privatnih podataka i eskalacije ovlasti.
Sljedeći koraci
1. Ažurirajte aplikaciju i ispravite upozorenja Implicitna namjera na čekanju slijedeći korake navedene u nastavku.
U aplikaciji potražite lokaciju na kojoj je izrađena namjera na čekanju. Na primjer, sljedeći kôd izrađuje namjeru na čekanju u sklopu implicitne namjere:
// Izradite osnovnu implicitnu namjeru i uključite je u namjeru na čekanju
Intent base = new Intent("ACTION_FOO");
base.setPackage("some_package");
PendingIntent pi = PendingIntent.getService(this, 0, base, 0);
Google preporučuje da razvojni programeri riješe ranjivost izvođenjem bilo koje radnje navedene u nastavku (ili, još bolje, svih radnji):
- provjera jesu li postavljena polja radnje, paketa i komponente osnovne namjere
- provjera je li namjera na čekanju isporučena samo pouzdanim komponentama
- upotreba funkcije FLAG_IMMUTABLE (dodana u SDK-u 23) za izradu namjere na čekanju. Time se aplikacijama koje prime namjeru na čekanju onemogućuje popunjavanje nepopunjenih entiteta. Ako se aplikacija pokreće i na uređajima sa SDK-om 22 ili starijom verzijom, razvojnim programerima preporučujemo primjenu prethodnih opcija uz poboljšanje izrade namjere na čekanju pomoću uzorka:
if (android.os.Build.VERSION.SDK_INT >= 23) {
// Izrada namjere na čekanju uz FLAG_IMMUTABLE
} else {
// Postojeći kôd koji izrađuje namjeru na čekanju
}
2. Pošaljite ažurirani APK
Da biste poslali ažurirani paket aplikacije ili APK:
- Otvorite Play konzolu.
- Odaberite aplikaciju.
- Otvorite alat za istraživanje paketa aplikacije.
- Odaberite verziju aplikacije neusklađenog APK-a/paketa aplikacije na gornjem desnom padajućem izborniku i zabilježite koja su njihova izdanja.
- Idite na verziju koja ima problema s pravilima. To će biti jedna od sljedeće četiri stranice: Interno testiranje, Zatvoreno testiranje, Otvoreno testiranje ili Produkcija.
- U gornjem desnom kutu stranice kliknite Izradi novo izdanje. Možda ćete prvo morati kliknuti Upravljanje verzijom.
- Ako je izdanje s APK-om koji krši pravila u stanju skice, odbacite izdanje.
- Dodajte verziju paketa aplikacije ili APK-ova usklađenu s pravilima.
- Provjerite je li neusklađena verzija paketa aplikacije ili APK-ova navedena u odjeljku Nije uključeno ovog izdanja. Dodatne upute potražite u odjeljku Nije uključeno (paketi aplikacije i APK-ovi) ovog članka pomoći za Play konzolu.
- Da biste spremili promjene izdanja, odaberite Spremi.
- Kad završite s pripremom izdanja, odaberite Pregled izdanja.
Ako se neusklađeni APK objavi u više verzija, ponovite korake od 5 do 9 u svakoj verziji.
Za to vrijeme vaša nova aplikacija ili ažuriranje aplikacije imat će status na pregledu dok se vaš zahtjev ne pregleda. Ako aplikacija nije pravilno ažurirana, upozorenje će se prikazivati i dalje.
Obratite nam se ako vam zatreba pomoć
Ako imate tehnička pitanja o ranjivosti, možete objaviti post na Stack Overflowu uz oznaku "android-security". Za upute za rješavanje te poteškoće možete se obratiti našoj korisničkoj podršci.