Co to jest"android:allowBackup"?

Ponieważ nowa wersja ADT preview (wersja 21), mają nowe Ostrzeżenie lint, które mówi mi następną rzecz w pliku manifestu (w znaczniku aplikacji):

Powinien jawnie ustawić android: allowBackup na true lub false (domyślnie jest to prawda, co może mieć wpływ na bezpieczeństwo danych aplikacji)

W Oficjalna strona, napisali:

Kilka nowych sprawdzeń: musisz wyraźnie zdecyduj, czy aplikacja zezwala na tworzenie kopii zapasowych i sprawdzanie etykiet. Jest nowa flaga wiersza poleceń do ustawiania ścieżki biblioteki. Wiele ulepszeń do przyrostowej analizy lint podczas edycji.

Co to za Ostrzeżenie? Co to jest funkcja tworzenia kopii zapasowych i jak z niej korzystać?

Poza tym, dlaczego Ostrzeżenie mówi mi, że ma wpływ na bezpieczeństwo? Jakie są wady i zalety wyłączenia tej funkcji?


Istnieją dwie koncepcje tworzenia kopii zapasowych dla "manifest": {]}

  • "android: allowBackup " pozwala na tworzenie kopii zapasowych i przywracanie przez adb, jak pokazano Proszę.:

Czy zezwolić aplikacji na udział w backupie i przywrócić infrastrukturę. Jeśli ten atrybut jest ustawiony na false, brak kopii zapasowej lub przywracanie aplikacji będzie kiedykolwiek wykonywane, nawet przez pełnej kopii zapasowej systemu, która w przeciwnym razie spowodowałaby być zapisywane przez adb. Domyślną wartością tego atrybutu jest prawda.

Jest to uważane za problem bezpieczeństwa, ponieważ ludzie mogą wykonać kopię zapasową aplikacji za pośrednictwem ADB , a następnie pobrać Prywatne Dane aplikacji do swojego komputera.

Jednak myślę, że to nie jest problem, ponieważ większość użytkowników nie wie, co to jest adb, a jeśli tak, będą również wiedzieć, jak wykorzenić urządzenie. Funkcje ADB będą działać tylko wtedy, gdy urządzenie ma włączoną funkcję debugowania, a to wymaga, aby użytkownik ją włączył.

Więc tylko użytkownicy, którzy łączą swoje urządzenia z dotyczy to komputera i włącz funkcję debugowania. Jeśli na komputerze znajduje się złośliwa aplikacja, która korzysta z narzędzi ADB, może to być problematyczne, ponieważ aplikacja może odczytać prywatne dane pamięci masowej.

Myślę, że Google powinien po prostu dodać funkcję, która jest domyślnie wyłączona, w kategorii programista, aby umożliwić tworzenie kopii zapasowych i przywracanie aplikacji przez ADB.

  • "android: backupAgent" pozwala korzystać z funkcji tworzenia kopii zapasowych i przywracania w chmurze, jak pokazano Tutaj oraz Proszę.:

Nazwa klasy, która implementuje agenta kopii zapasowej aplikacji, podklasa BackupAgent. Wartość atrybutu powinna być w pełni nazwa klasy kwalifikowanej (np. " com.przykład.projekt.MyBackupAgent"). Jednak jako skrót, jeśli pierwszy znak nazwy jest kropka (np. ".MyBackupAgent"), jest dołączany do pakietu Nazwa określona w elemencie. Nie ma wartości domyślnej. Na imię musi być określone.

To nie jest problem bezpieczeństwa.

Author: Peter Mortensen, 2012-09-29

6 answers

Dla tego ostrzeżenia lint i dla wszystkich innych ostrzeżeń lint, zauważ, że możesz uzyskać pełniejsze Wyjaśnienie niż tylko to, co znajduje się w jednym wierszu Komunikatu o błędzie; nie musisz szukać więcej informacji w Internecie.

Jeśli używasz lint przez Eclipse, Otwórz widok ostrzeżeń lint, gdzie możesz wybrać błąd lint i zobaczyć dłuższe Wyjaśnienie, lub wywołaj quickfix (Ctrl-1) w linii błędu, a jedną z sugestii jest "Explain this issue", które również pojawi się pełniejsze Wyjaśnienie. Jeśli nie używasz Eclipse, możesz wygenerować raport HTML z lint (lint --html <filename>), który zawiera pełne wyjaśnienia obok ostrzeżeń, lub możesz poprosić lint o wyjaśnienie konkretnego problemu. Na przykład problem związany z allowBackup ma identyfikator "AllowBackup" (pokazany na końcu Komunikatu o błędzie), więc pełniejsze Wyjaśnienie to:

$ ./lint --show AllowBackup
AllowBackup
-----------
Summary: Ensure that allowBackup is explicitly set in the application's
manifest

Priority: 3 / 10
Severity: Warning
Category: Security

Atrybut allowBackup określa, czy dane aplikacji mogą być archiwizowane i odrestaurowany. Jest to udokumentowane tutaj .

By default, this flag is set to true. When this flag is set to true,
application data can be backed up and restored by the user using adb backup
and adb restore.

This may have security consequences for an application. adb backup allows
users who have enabled USB debugging to copy application data off of the
device. Once backed up, all application data can be read by the user. adb
restore allows creation of application data from a source specified by the
user. Following a restore, applications should not assume that the data, file
permissions, and directory permissions were created by the application
itself.

Setting `allowBackup="false"` opts an application out of both backup and
restore.

To fix this warning, decide whether your application should support backup,
and explicitly set `android:allowBackup=(true|false)`"

Kliknij tutaj po Więcej informacji

 120
Author: Tor Norbye,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-21 11:07:48

Oto co tak naprawdę oznacza backup:

Usługa kopii zapasowych Androida umożliwia skopiowanie trwałych danych aplikacji do zdalnej pamięci masowej "w chmurze", aby zapewnić punkt przywracania danych i ustawień aplikacji. Jeśli użytkownik wykona przywrócenie ustawień fabrycznych lub konwertuje na nowe urządzenie z systemem Android, system automatycznie przywróci dane kopii zapasowej po ponownym zainstalowaniu aplikacji. W ten sposób użytkownicy nie muszą odtwarzać swoich poprzednich danych lub ustawienia aplikacji.

~pobrany z http://developer.android.com/guide/topics/data/backup.html

Możesz zarejestrować się w tej usłudze tworzenia kopii zapasowych jako programista tutaj: https://developer.android.com/google/backup/signup.html

Typ danych, które mogą być archiwizowane to pliki, bazy danych, sharedPreferences, pamięć podręczna i lib. Są one zazwyczaj przechowywane w urządzeniu /data / data/[com.MyApp] katalog, który jest chroniony przed odczytem i nie może być dostępny chyba że masz uprawnienia roota.

UPDATE : Tę flagę można zobaczyć w dokumencie API BackupManager: BackupManager

 16
Author: Igor Ganapolsky,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-17 13:50:07

Nie jest to wyraźnie wymienione, ale w oparciu o następujące dokumenty, myślę, że sugeruje się, że aplikacja musi zadeklarować i zaimplementować BackupAgent, aby kopia zapasowa działała, nawet w przypadku, gdy allowBackup jest ustawiony na true (co jest domyślne wartość).

Http://developer.android.com/reference/android/R.attr.html#allowBackup http://developer.android.com/reference/android/app/backup/BackupManager.html http://developer.android.com/guide/topics/data/backup.html

 7
Author: Yuntao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-17 00:02:36

Kiedy powinniśmy ustawić android: allowBackup=false

Nie potrzebujesz roota do tworzenia kopii zapasowych danych z urządzenia z Androidem na komputer, potrzebujesz tylko fizycznego dostępu i Włączenia debugowania w menu programisty. Umożliwia to kopiowanie danych z pamięci wewnętrznej aplikacji, które mogą zawierać poufne informacje, których nie chcesz pozwolić komuś ukraść, takie jak token dostępu facebook.

Zgadzam się, że w większości przypadków jest to dość trywialne, ale są przypadki, które wymagają tego dodatkowa warstwa ochrony przed atakami w przypadku fizycznego dostępu.

Zauważ, że aby to obejść, musisz wykorzenić telefon, w którym to przypadku poufne dane w pamięci wewnętrznej zostaną wyczyszczone po przywróceniu ustawień fabrycznych.

 3
Author: Xar E Ahmer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-15 08:24:09

To jestprywatność troska. Zaleca się zabronić użytkownikom tworzenia kopii zapasowych aplikacji, jeśli zawiera ona poufne dane. Mając dostęp do plików kopii zapasowych (np. gdy android:allowBackup="true"), można modyfikować / odczytywać zawartość aplikacji nawet na urządzeniu nie zakorzenionym.

Solution-użyj android:allowBackup="false" w pliku manifestu.

Możesz przeczytać ten post, aby uzyskać więcej informacji: Hakowanie Aplikacji Na Androida Przy Użyciu Technik Tworzenia Kopii Zapasowych

 1
Author: Sa Qada,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-10 07:31:21

Android: allowBackup

        Whether to allow the application to participate in the backup and restore 
   infrastructure. If this attribute is set to false, no backup or restore of the 
   application will ever be performed, even by a full-system backup that would 
   otherwise cause all application data to be saved via adb. The default value of 
   this attribute is true.
[[1]} Android: allowBackup=["prawda | / "fałsz"]
 -1
Author: codeaamirkalimi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-03 14:24:50