Desde la nueva versión de vista previa de ADT (versión 21) , tienen una nueva advertencia de pelusa que me dice lo siguiente en el archivo de manifiesto (en la etiqueta de la aplicación):
Debería establecer explícitamente android: allowBackup en verdadero o falso (es cierto de forma predeterminada, y eso puede tener algunas implicaciones de seguridad para los datos de la aplicación)
En el sitio web oficial , han escrito:
Un par de nuevas comprobaciones: debe decidir explícitamente si su aplicación permite copias de seguridad y una comprobación de etiquetas. Hay un nuevo indicador de línea de comando para configurar la ruta de la biblioteca. Muchas mejoras al análisis de pelusa incremental durante la edición.
¿Qué es esta advertencia? ¿Qué es la función de copia de seguridad y cómo la uso?
Además, ¿por qué la advertencia me dice que tiene implicaciones de seguridad? ¿Cuáles son las desventajas y ventajas de deshabilitar esta función?
Hay dos conceptos de copia de seguridad para el manifiesto:
- "android: allowBackup " permite realizar copias de seguridad y restaurar a través de adb, como se muestra aquí :
Ya sea para permitir que la aplicación participe en la infraestructura de respaldo y restauración. Si este atributo se establece en falso, nunca se realizará una copia de seguridad o restauración de la aplicación, incluso mediante una copia de seguridad del sistema completo que de lo contrario haría que todos los datos de la aplicación se guarden a través de adb. El valor predeterminado de este atributo es verdadero.
Esto se considera un problema de seguridad porque las personas podrían hacer una copia de seguridad de su aplicación a través de ADB y luego obtener datos privados de su aplicación en su PC.
Sin embargo, creo que no es un problema, ya que la mayoría de los usuarios no saben qué es adb, y si lo hacen, también sabrán cómo rootear el dispositivo. Las funciones ADB solo funcionarían si el dispositivo tiene la función de depuración habilitada, y esto necesita que el usuario la habilite.
Por lo tanto, solo los usuarios que conectan sus dispositivos a la PC y habilitan la función de depuración se verían afectados. Si tienen una aplicación maliciosa en su PC que usa las herramientas ADB, esto podría ser problemático ya que la aplicación podría leer los datos de almacenamiento privado.
Creo que Google debería agregar una función que está deshabilitada de forma predeterminada, en la categoría de desarrollador, para permitir la copia de seguridad y restauración de aplicaciones a través de ADB.
- "android: backupAgent " permite utilizar la función de copia de seguridad y restauración de la nube, como se muestra aquí y aquí :
El nombre de la clase que implementa es el agente de respaldo de la aplicación, una subclase de BackupAgent. El valor del atributo debe ser un nombre de clase totalmente calificado (como "com.example.project.MyBackupAgent"). Sin embargo, como abreviatura, si el primer carácter del nombre es un punto (por ejemplo, ".MyBackupAgent"), se agrega al nombre del paquete especificado en el elemento. No hay defecto. El nombre debe ser especificado.
Este no es un problema de seguridad.
fuente
Respuestas:
Para esta advertencia de pelusa, como para todas las demás advertencias de pelusa, tenga en cuenta que puede obtener una explicación más completa que solo lo que está en el mensaje de error de una línea; no tiene que buscar en la web para obtener más información.
Si está utilizando pelusa a través de Eclipse, abra la vista de advertencias de pelusa, donde puede seleccionar el error de pelusa y ver una explicación más larga, o invocar la solución rápida (Ctrl-1) en la línea de error, y una de las sugerencias es " Explica este problema ", que también mostrará una explicación más completa. Si no está utilizando Eclipse, puede generar un informe HTML desde lint (
lint --html <filename>
) que incluye explicaciones completas junto a las advertencias, o puede pedirle a lint que explique un problema en particular. Por ejemplo, el problema relacionado conallowBackup
tiene la identificaciónAllowBackup
(que se muestra al final del mensaje de error), por lo que la explicación más completa es:El
allowBackup
atributo determina si los datos de una aplicación se pueden respaldar y restaurar, como se documenta aquí .Haga clic aquí para más información
fuente
Esto es lo que realmente significa copia de seguridad en este sentido:
~ Tomado de http://developer.android.com/guide/topics/data/backup.html
Puede registrarse para este servicio de respaldo como desarrollador aquí: https://developer.android.com/google/backup/signup.html
El tipo de datos que se puede respaldar son archivos, bases de datos, Preferencias compartidas, caché y lib. En general, se almacenan en el directorio /data/data/[com.myapp] de su dispositivo, que está protegido contra lectura y no se puede acceder a menos que tenga privilegios de root.
ACTUALIZACIÓN : Puede ver este indicador en el api doc de BackupManager : BackupManager
fuente
Esto no se menciona explícitamente, pero según los siguientes documentos, creo que está implícito que una aplicación necesita declarar e implementar un Agente de copia de seguridad para que la copia de seguridad de datos funcione, incluso en el caso de que allowBackup esté establecido en true (que es el valor por defecto).
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
fuente
Es una cuestión de privacidad . Se recomienda no permitir a los usuarios hacer una copia de seguridad de una aplicación si contiene datos confidenciales. Al tener acceso a archivos de copia de seguridad (es decir, cuándo
android:allowBackup="true"
), es posible modificar / leer el contenido de una aplicación incluso en un dispositivo no rooteado.Solución: utilizar
android:allowBackup="false"
en el archivo de manifiesto.Puede leer esta publicación para obtener más información: Hackear aplicaciones de Android utilizando técnicas de copia de seguridad
fuente