name - android manifest xml permission




Cosa è "android: allowBackup"? (4)

Dal momento che la nuova versione di anteprima di ADT (versione 21) , hanno un nuovo avviso di lanugine che mi dice la prossima cosa sul file manifest (nel tag dell'applicazione):

Dovrebbe impostare esplicitamente android: allowBackup su true o false (è vero per impostazione predefinita e può avere alcune implicazioni sulla sicurezza per i dati dell'applicazione)

Nel sito ufficiale , hanno scritto:

Un paio di nuovi controlli: devi decidere esplicitamente se l'app consente i backup e un controllo dell'etichetta. C'è un nuovo flag della riga di comando per l'impostazione del percorso della libreria. Molti miglioramenti all'analisi incrementale della sfilacciatura durante la modifica.

Cos'è questo avviso? Qual è la funzione di backup e come la utilizzo?

Inoltre, perché l'avvertimento mi dice che ha implicazioni sulla sicurezza? Quali sono gli svantaggi e i vantaggi di disabilitare questa funzione?

Esistono due concetti di backup per manifest:

  • "android: allowBackup " consente di eseguire il backup e il ripristino tramite adb, come mostrato here :

Se consentire all'applicazione di partecipare all'infrastruttura di backup e ripristino. Se questo attributo è impostato su falso, non verrà mai eseguito alcun backup o ripristino dell'applicazione, nemmeno con un backup dell'intero sistema che altrimenti causerebbe il salvataggio di tutti i dati dell'applicazione tramite adb. Il valore predefinito di questo attributo è true.

Questo è considerato un problema di sicurezza perché le persone possono eseguire il backup della tua app tramite ADB e quindi ottenere dati privati ​​della tua app sul PC.

Tuttavia, penso che non sia un problema, dal momento che la maggior parte degli utenti non sa cosa sia Adb e, se lo fanno, sapranno anche come eseguire il root del dispositivo. Le funzioni ADB funzionano solo se il dispositivo ha la funzione di debug abilitata e questo richiede all'utente di abilitarlo.

Pertanto, saranno interessati solo gli utenti che collegano i loro dispositivi al PC e abilitano la funzionalità di debug. Se dispongono di un'app dannosa sul PC che utilizza gli strumenti ADB, ciò potrebbe essere problematico poiché l'app potrebbe leggere i dati di archiviazione privata.

Penso che Google dovrebbe semplicemente aggiungere una funzionalità che è disabilitata per impostazione predefinita, nella categoria degli sviluppatori, per consentire il backup e il ripristino delle app tramite ADB.

  • "android: backupAgent " consente di utilizzare la funzionalità di backup e ripristino del cloud, come mostrato here e here :

Il nome della classe che implementa l'agente di backup dell'applicazione, una sottoclasse di BackupAgent. Il valore dell'attributo deve essere un nome di classe completo (ad esempio "com.example.project.MyBackupAgent"). Tuttavia, in forma abbreviata, se il primo carattere del nome è un punto (ad esempio, ". MyBackupAgent"), viene aggiunto al nome del pacchetto specificato nell'elemento. Non esiste un valore predefinito. Il nome deve essere specificato.

Questo non è un problema di sicurezza.


È un problema di privacy . Si consiglia di non consentire agli utenti di eseguire il backup di un'app se contiene dati sensibili. Avendo accesso ai file di backup (cioè quando android:allowBackup="true" ), è possibile modificare / leggere il contenuto di un'app anche su un dispositivo non rootato.

Soluzione: utilizzare android:allowBackup="false" nel file manifest.

Puoi leggere questo post per avere maggiori informazioni: Hacking Android Apps Using Backup Techniques


Ecco cosa significa in questo senso il backup:

Il servizio di backup di Android consente di copiare i dati delle applicazioni persistenti nell'archiviazione "cloud" remota, al fine di fornire un punto di ripristino per i dati e le impostazioni dell'applicazione. Se un utente esegue un ripristino di fabbrica o si converte in un nuovo dispositivo Android, il sistema ripristina automaticamente i dati di backup quando l'applicazione viene reinstallata. In questo modo, gli utenti non devono riprodurre i dati precedenti o le impostazioni dell'applicazione.

~ Preso da http://developer.android.com/guide/topics/data/backup.html

Puoi registrarti per questo servizio di backup come sviluppatore qui: https://developer.android.com/google/backup/signup.html

Il tipo di dati di cui è possibile eseguire il backup sono file, database, sharedPreferences, cache e lib. Questi sono generalmente memorizzati nella directory /data/[com.myapp] del tuo dispositivo, che è protetta dalla lettura e non può essere accessibile a meno che tu non abbia i privilegi di root.

AGGIORNAMENTO : è possibile visualizzare questo flag elencato nel documento api di BackupManager : BackupManager



Quando dovremmo impostare android: allowBackup = false

Non hai bisogno di root per eseguire il backup dei dati da un dispositivo Android a un PC, hai solo bisogno di accesso fisico e di abilitare il debug nel menu dello sviluppatore. Ciò ti consente di copiare i dati dalla memoria interna dell'app, che può contenere informazioni riservate che non vuoi permettere a qualcuno di rubare, come il token di accesso di Facebook.

Sono d'accordo che nella maggior parte dei casi è piuttosto banale, ma ci sono alcuni casi che richiedono questo ulteriore livello di protezione dagli attacchi in cui è implicato l'accesso fisico.

Si noti che per aggirare questo problema è necessario effettuare il root del telefono, nel qual caso i dati sensibili nella memoria interna verrebbero cancellati quando si verifica il ripristino dei dati di fabbrica.







android-backup-service