Umumiy

“Yovuz Mnemosin” yohud ilovalaringiz bekaplari qanchalik xavfli?

“Mnemosin” grek mifalogiyasida xotira va eslab qolish ma’budasi sifatida ta’riflangan. Albatta u yovuz emas. Lekin uning kuchidan yovuz maqsadlarda ham foydalanishgan emish (afsonalarda 😉). Nima bo’lsa ham, bugungi mavzu aynan “eslab qolish” ga doir!

Android 12 va undan yuqori qurilmalarga “target” qilgan yoki shu qurilmada ishlagan ilovalarda “backup & restore” va “D2D transfer” bulutli funksiyalari ishlaydi.

Android Developer hujjatlaridan

Bular nima?

  • Bulutli zahira nusxalari: foydalanuvchi ma’lumotlari keyinchalik ushbu qurilmada yoki yangi qurilmada tiklanishi uchun foydalanuvchining Google Drive-iga saqlanadi.
  • Qurilmadan qurilmaga (D2D) uzatish: foydalanuvchi ma’lumotlari to’g’ridan-to’g’ri foydalanuvchining eski qurilmasidan yangi qurilmasiga, masalan, kabel orqali yuboriladi.

Bu funksiyalar juda foydali va ayni paytda zararli bo’lishi ham mumkin. Nega?

Aytaylik, agar foydalanuvchi login detallarini qurilma keshida saqlab turgan bo’lsangiz, ilova o’chirib yuborilgan taqdirda ham, ushbu ma’lumotlar bulutda saqlanib qolaveradi.
Misol uchun, foydalanuvchi shunchaki qurilmani ilovalarini o’chirib, uni boshqa insonga sotib yubordi yoki shunchaki berdi. Begona foydalanuvchi o’chirib yuborilgan ilovani qayta o’rnatganida, eski foydalanuvchi nomidan allaqachon kirib bo’linganini ko’radi. Bu esa haqiqiy “daxshat”.
Agar bu ilovalar har xil to’lov yoki shaxsiy ma’lumotlar yig’ilgan ilova bo’lsa: “Adoooo bo’ldi mug’anniy…”.

Buni oldini olish uchun ilovaning ushbu joylariga o’zgartirishlar kiritish kerak:

Ilovangiz AndroidManifest.xml fayliga dataExtractionRules attributini data_extraction_rules.xml bog’lanmasi bilan birga qo’shing.

<application
    android:allowBackup="false"
    android:fullBackupContent="false"
    android:dataExtractionRules="@xml/data_extraction_rules"
    ...>

Avvalo ushbu fayl bor yo’qligini tekshiring, bo’lmasa yarating: app/src/main/res/xml/data_extraction_rules.xml. So’ngra, bulutli bekaplar va d2d transferlarga aloqador barcha maydonlarni chegiring (exclude):

<?xml version="1.0" encoding="utf-8"?>
<data-extraction-rules>
    <cloud-backup>
        <exclude domain="root" />
        <exclude domain="file" />
        <exclude domain="database" />
        <exclude domain="sharedpref" />
        <exclude domain="external" />
    </cloud-backup>
    <device-transfer>
        <exclude domain="root" />
        <exclude domain="file" />
        <exclude domain="database" />
        <exclude domain="sharedpref" />
        <exclude domain="external" />
    </device-transfer>
</data-extraction-rules>

API 31 (Android 12) dan avvalgi API larda quyidagi atributlar ishlaydi: allowBackup va fullBackupContent. Ushbu atributlarni <application.. tegini ichida false qiymatga sozlash kifoyda.

Xavfsiz ilova, ishonchli ilova!
Flutterlashda charchamang. Cheers! 🥂

Prev Next