Ove su informacije namijenjene razvojnim programerima aplikacija koje su izložene opasnosti od umetanja SQL koda.
Što se događa
Jedna ili više vaših aplikacija sadrže ranjivost SQL Injection koju je potrebno ukloniti. Pogledajte obavijest na Play konzoli. Aplikacije 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
- Prijavite se na Play konzolu i u odjeljku Upozorenja pogledajte koje su aplikacije podložne ranjivostima i koji su rokovi za rješavanje tih poteškoća.
- Ažurirajte zahvaćene aplikacije i uklonite ranjivosti.
- 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
Implementacije query
, update
i delete
u izvezenim ContentProviderima
mogu biti ranjive na SQL Injection ako dodaju neočišćene unose u SQL izjave. Zlonamjerna aplikacija može dostaviti posebno izrađene unose za pristup privatnim podacima ili oštećivanje sadržaja baze podataka. Problem možete riješiti na sljedeće načine:
Ako pogođeni ContentProvider
ne mora biti izložen drugim aplikacija:
- Možete izmijeniti oznaku
<provider>
pogođenogContentProvidera
u manifestu da biste postaviliandroid:exported="false"
. To će onemogućiti drugim aplikacijama da šalju namjere pogođenomContentProvideru
. -
Možete i postaviti atribut
android:permission
napermission
uzandroid:protectionLevel="signature"
da biste onemogućili aplikacijama drugih razvojnih programera da šalju namjere pogođenomContentProvideru
.
Ako pogođeni ContentProvider
treba biti izložen drugim aplikacijama:
- SQL Injection u
SQLiteDatabase.query
možete spriječiti tako da upotrijebite način strict uz projection map. Način "strict" pruža zaštitu od zlonamjernih uvjeta odabira, a projection map od zlonamjernih uvjeta projekcije. Morate upotrijebiti obje značajke kako bi vaši upiti bili sigurni. - SQL Injection u
SQLiteDatabase.update
iSQLiteDatabase.delete
možete spriječiti tako da upotrijebite uvjet odabira koji koristi"?"
kao zamjenjivi parametar i zaseban niz argumenata odabira. Uvjet odabira ne smije biti sastavljen od nepouzdanih unosa.
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.