Te informacije so namenjene razvijalcem aplikacij, ki vsebujejo ranljivost zaradi vstavljanja SQL-ja.
Kaj se dogaja?
Ena ali več vaših aplikacij vsebuje ranljivost ranljivost zaradi vstavljanja SQL-ja, ki jo je treba odpraviti. Preberite obvestilo v Konzoli Play. Morebitne aplikacije, ki imajo po rokih, navedenih v Konzoli Play, še vedno varnostne ranljivosti, bodo morda odstranjene iz Googla Play.
Potrebno ukrepanje
- Prijavite se v Konzolo Play in pojdite v razdelek Opozorila, kjer si lahko ogledate aplikacije, na katere se to nanaša, in roke, do katerih je treba odpraviti težave.
- Posodobite aplikacije, ki jih to zadeva, in odpravite ranljivost.
- Pošljite posodobljene različice aplikacij, ki jih to zadeva.
Ko aplikacijo znova pošljete, jo bomo spet pregledali. Ta postopek lahko traja več ur. Če aplikacija uspešno opravi pregled in je objavljena, ni potrebno dodatno ukrepanje. Če pregled ni uspešen, nova različica aplikacije ne bo objavljena in boste prejeli e-poštno obvestilo.
Dodatne informacije
Izvedbe query
, update
in delete
v izvoženih ponudnikih ContentProviders
so lahko ranljive na vstavljanje SQL-ja, če stavkom SQL posredujejo neprečiščene vhodne podatke. Zlonamerna aplikacija lahko posreduje primerno prilagojen vnos in dostopa do zasebnih podatkov ali poškoduje vsebino zbirke podatkov. To težavo lahko odpravite na te načine:
Če zadevnega ponudnika ContentProvider
ni treba izpostaviti drugim aplikacijam:
- oznako
<provider>
zadevnega ponudnikaContentProvider
v manifestu lahko spremenite tako, da nastaviandroid:exported="false"
. S tem drugim aplikacijam preprečite, da bi zadevnemu ponudnikuContentProvider
pošiljale namene; -
poleg tega lahko atribut
android:permission
nastavite, da jepermission
zandroid:protectionLevel="signature"
, kar aplikacijam drugih razvijalcev preprečuje pošiljanje namenov zadevnemu ponudnikuContentProvider
.
Če zadevnega ponudnika ContentProvider
ni treba izpostaviti drugim aplikacijam:
- vstavljanje SQL-ja v
SQLiteDatabase.query
lahko preprečite z načinom strict in preslikavo projekcije. Način »strict« zaščiti pred zlonamernimi izbirnimi stavki, preslikava projekcije pa pred zlonamernimi projekcijskimi stavki. Če želite zagotoviti, da bodo poizvedbe varne, morate uporabiti obe ti funkciji; - vstavljanje SQL-ja v
SQLiteDatabase.update
inSQLiteDatabase.delete
lahko preprečite z izbirnim stavkom, ki uporablja»?«
kot nadomestljiv parameter, in ločenim poljem izbirnih argumentov. Izbirni stavek ne sme biti sestavljen iz vhodov, ki niso zaupanja vredni.
Tu smo, da vam pomagamo
Če imate tehnična vprašanja glede ranljivosti, jih objavite v skupnosti Stack Overflow in uporabite oznako »android-security«. Če potrebujete pojasnilo postopka, ki ga morate uporabiti za odpravljanje te težave, se lahko obrnete na skupino za podporo razvijalcem.