Android Application 之 allowBackup 属性浅析

简介: Android Application 之 allowBackup 属性浅析

我们从官网Application文档介绍中可以看到如下信息:

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.


参考阿里聚安全的建议

allowBackup 安全风险描述


Android API Level 8 及其以上 Android 系统提供了为应用程序数据的备份和恢复功能,此功能的开关决定于该应用程序中 AndroidManifest.xml 文件中的 allowBackup 属性值,其属性值默认是 True。当 allowBackup 标志为 true 时,用户即可通过 adb backup 和 adb restore 来进行对应用数据的备份和恢复,这可能会带来一定的安全风险。


Android 属性 allowBackup 安全风险源于 adb backup 容许任何一个能够打开 USB 调试开关的人从Android 手机中复制应用数据到外设,一旦应用数据被备份之后,所有应用数据都可被用户读取;adb restore 容许用户指定一个恢复的数据来源(即备份的应用数据)来恢复应用程序数据的创建。因此,当一个应用数据被备份之后,用户即可在其他 Android 手机或模拟器上安装同一个应用,以及通过恢复该备份的应用数据到该设备上,在该设备上打开该应用即可恢复到被备份的应用程序的状态。


尤其是通讯录应用,一旦应用程序支持备份和恢复功能,攻击者即可通过 adb backup 和 adb restore 进行恢复新安装的同一个应用来查看聊天记录等信息;对于支付金融类应用,攻击者可通过此来进行恶意支付、盗取存款等;因此为了安全起见,开发者务必将 allowBackup 标志值设置为 false 来关闭应用程序的备份和恢复功能,以免造成信息泄露和财产损失。


总结:

出于安全考虑,建议关闭应用备份功能:在 AndroidMenifest.xml 文件中,将相应组件的 “android:allowBackup” 属性设置为 “false”

<application
        android:allowBackup="false"
        android:label="@string/app_name">
    <activity android:name="BackupActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity android:name=".MainActivity"/>
</application>



相关文章
|
1月前
|
Shell API Android开发
android queries属性
android queries属性
61 2
|
1月前
|
Java Android开发 C++
Android源代码定制:MK文件执行顺序|属性覆盖
Android源代码定制:MK文件执行顺序|属性覆盖
39 2
Android源代码定制:MK文件执行顺序|属性覆盖
|
1月前
|
缓存 安全 Java
Android中的persistent属性
Android中的persistent属性
22 2
|
1月前
|
Android开发
通过反射方式获取Android设备系统属性
通过反射方式获取Android设备系统属性 【5月更文挑战第1天】
37 2
|
1月前
|
Android开发 C++
Android 系统属性(SystemProperties)
Android 系统属性(SystemProperties)
41 1
|
1月前
|
测试技术 Android开发 开发者
RK3568 Android系统客制化动态替换ro任意属性
RK3568 Android系统客制化动态替换ro任意属性
60 1
|
1月前
|
Android开发
Android android:exported="true" 属性
Android android:exported="true" 属性
37 0
|
1月前
|
Java Android开发
Android开发--Intent-filter属性详解
Android开发--Intent-filter属性详解
15 0
|
1月前
|
Linux Android开发
Android Mediatek 修改UART设备名称和默认调试属性
Android Mediatek 修改UART设备名称和默认调试属性
19 0
|
1月前
|
缓存 Android开发
Android——application全局类的使用
Android——application全局类的使用