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>
Android Application 之 allowBackup 属性浅析相关推荐
- Android --- allowBackup 属性的含义和危险性实例讲解
一.前言 今天在开发的过程中遇到一个问题,就是关于AndroidManifest.xml中的allowBackup属性,也算是自己之前对这个属性的不了解,加上IDE的自动生成代码,没太注意这个属性,但 ...
- 【转】Android应用开发allowBackup敏感信息泄露的一点反思
转载:http://blog.csdn.net/yanbober/article/details/46417531 1 背景 其实这篇文章可能有些小题大作,但回过头想想还是很有必要的,有点阴沟里翻船的 ...
- Android application 和 activity 标签详解
Application 标签 android:allowTaskReparenting android:allowTaskReparenting=["true" | "f ...
- Android.Application
先来整体看一下Application是用来干什么的 一.先对它的整体概念解释: 在android源码中对他的描述是 * Base class for those who need to maintai ...
- Android 4.0 ICS SystemUI浅析——StatusBar加载流程分析
前面两篇文章< Android 4.0 ICS SystemUI浅析--SystemUI启动流程>.< Android 4.0 ICS SystemUI浅析--StatusBar结构 ...
- 说说Android应用的persistent属性
2019独角兽企业重金招聘Python工程师标准>>> 说说Android应用的persistent属性 侯 亮 1 启动persistent应用 在Android系统中,有一种永久 ...
- Android Application Fundamentals——Android应用程序基础知识
Application Fundamentals--应用程序基础知识 Key classes--关键类 Activity Service BroadcastReceiver ContentProvid ...
- Android R WiFi热点流程浅析
Android R WiFi热点流程浅析 Android上的WiFi SoftAp功能是用户常用的功能之一,它能让我们分享手机的网络给其他设备使用. 那Android系统是如何实现SoftAp的呢,这 ...
- Android Application Task Activities的关系
什么是Android Application? 简单来说,一个apk文件就是一个Application. 任何一个Android Application基本上是由一些Activities组成,当用户 ...
最新文章
- MySQL Replace INTO的使用
- 【 Verilog HDL 】寄存器数据类型(reg)与线网数据类型(wire,tri)
- Eigen::Map
- JS提交表单页面不跳转、JS下载、动态创建from
- python函数可以递归调用吗_递归调用函数
- [转载] LeetCode题解(面试16.22):兰顿蚂蚁(Python)
- myeclipse/eclipse方法和类的自动注解
- CTO发飙:不要在Java代码中写set/get方法了,逮一次罚款***
- 最近amd.dll闹的很火
- Cadence学习之路:寻找优秀的封装资源以及3D封装设置
- windows安装配置jdk1.8
- IB中文考生如何把握戏剧冲突的表现形式与特征
- openjdk1.8的下载与安装
- gawk 命令(转载:http://blog.sina.com.cn/s/blog_6238358c01012h1f.html)
- 蛮力法/01背包问题
- 基于SSM框架的文章管理系统(增加留言回复功能)
- 汽车软件开发自动化测试攻略
- 小猫爪:S32K3学习笔记21-S32K3之SAF及其应用
- android换苹果,苹果换手机怎么转移数据?苹果、安卓都可以一键转移数据
- Python Xml dom解析 输出json操作
热门文章
- C++构造函数初始化列表
- datagrid wpf 刷新数据_wpf – 更新数据源时刷新Datagrid
- 与虫子尾交3d动画网站_PPT中最酷的效果 —— 3D模型全解
- 集成学习(一)—预备知识:分类树和回归树
- tableau 如何发布到public
- 数学符号的读法和英文表示
- 塞尔达传说gba_回顾 | 猹鱼主题速写:塞尔达传说 英国绅士
- 巴塞尔新资本协议_《巴塞尔公约》修订!进口再生颗粒或对中国产生巨大冲击...
- python核心编程第三版_Python之父:自学python,这3本书能节约你一大半时间编程...
- 日语输入法电脑版_日语输入法下载及使用教程【建议收藏】