Ši informacija skirta programos (-ų), kurioje (-iose) yra SQL įtraukimo pažeidimas, kūrėjams.
Kas vyksta
Mažiausiai vienoje jūsų programoje yra SQL įtraukimo pažeidimas, kurį būtina sutvarkyti. Žr. pranešimą sistemoje „Play Console“. Praėjus „Play Console“ nurodytiems terminams, programos, kuriose yra nepataisytų saugos pažeidimų, gali būti pašalintos iš „Google Play“.
Būtini veiksmai
- Prisijunkite prie „Play Console“ ir nuėję į skiltį „Įspėjimai“ peržiūrėkite, kurios programos yra paveiktos ir iki kada reikia išspręsti šias problemas.
- Atnaujinkite paveiktas programas ir pataisykite pažeidimą.
- Pateikite atnaujintas paveiktų programų versijas.
Pateikus iš naujo, programa bus peržiūrėta dar kartą. Tai gali užtrukti kelias valandas. Jei programa po peržiūros įvertinama kaip tinkama ir sėkmingai paskelbiama, kitų veiksmų imtis nereikia. Jei programa po peržiūros įvertinama kaip netinkama, nauja jos versija skelbiama nebus, o jūs gausite pranešimą el. paštu.
Papildoma informacija
Eksportuotuose „ContentProvider“
įdiegti elementai „query“
, „update“
ir „delete“
gali būti pažeidžiami įtraukus SQL, jei jie perduoda neapvalytas įvestis SQL pareiškimams. Kenkėjiška programa gali pateikti apgaulingą įvestį, kad pasiektų privačius duomenis ar sugadintų duomenų bazės turinį. Šią problemą galite išspręsti nurodytais būdais.
Jei paveiktos klasės „ContentProvider“
nereikia atskleisti kitoms programoms:
- galite keisti paveiktos klasės
„ContentProvider“
žymą<provider>
apraše, kad būtų galima nustatytiandroid:exported="false"
. Taip kitos programos nesiųs objektų „Intent“ į paveiktą klasę„ContentProvider“
; -
taip pat galite nustatyti atributą
„android:permission“
, kad jis būtų elementu„permission“
, naudodamiandroid:protectionLevel="signature"
, ir neleisti programoms, kurias parašė kiti kūrėjai, siųsti objektų „Intent“ į paveiktą klasę„ContentProvider“
.
Jei paveiktą klasę „ContentProvider“
reikia atskleisti kitoms programoms:
- galite neleisti SQL įtraukimo į
„SQLiteDatabase.query“
naudodami griežtą režimą su projekcijos žemėlapiu. Griežtas režimas apsaugo nuo kenkėjiškų pasirinkimo sakinių, o projekcijos žemėlapis apsaugo nuo kenkėjiškų projekcijos sakinių. Turite naudoti abi šias funkcijas, kad užtikrintumėte, jog užklausos saugios; - galite neleisti SQL įtraukimo į
„SQLiteDatabase.update“
ir„SQLiteDatabase.delete“
naudodami pasirinkimo sakinį, kuriame naudojamas„?“
kaip pakeičiamas parametras ir atskiras pasirinkimo argumentų masyvas. Pasirinkimo sakinys negali būti sudarytas iš nepatikimų įvesčių.
Esame pasirengę padėti
Jei kyla su pažeidimais susijusių techninių klausimų, galite juos paskelbti „Stack Overflow“ ir naudoti žymą „android-security“. Jei reikia daugiau informacijos apie veiksmus, kuriuos turite atlikti, kad išspręstumėte šią problemą, galite susisiekti su mūsų kūrėjų palaikymo komanda.