AndroidManifest.xml中application属性allowBackup、supportsRtl

探讨Android应用中allowBackup属性的安全风险,包括数据备份与恢复功能可能带来的信息泄露和财产损失,建议开发者将其设置为false。同时介绍android:supportsRtl属性,用于声明应用是否支持从右至左布局,影响API17及以上版本。

<application android:allowBackup="false">

 是否允许备份应用的数据,默认是true,当备份数据的时候,它的数据会被备份下来。如果设为false,那么绝对不会备份应用的数据,即使是备份整个系统。
 

1.allowBackup安全风险描述

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

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

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

2.allowBackup安全影响范围

Android API Level 8以及以上系统
 


android:supportsRtl 

<application
   android:supportsRtl="true"
    …>
</application>

声明你的application是否愿意支持从右到左(原来RTL就是right-to-left 的缩写...)的布局。

如果设置为true,targetSdkVersion设置为17或更高,各种RTL的API将被激活,系统使用您的应用程序可以显示RTL布局。如果targetSdkVersion设置为16或更低的设置为false,RTL的API将被忽略或没有影响您的应用程序将具有相同的行为无论对用户现场的选择相关的布局方向(你的布局会从左至右)。
此属性的默认值是false。

此属性被添加到API 17。 
最后一句也说了,这个api是17(也就是Android4.2)以后才有的,并且这个属性默认是false,17以前的api不支持这个属性。
大概看下图就知道了:

参考转自:https://blog.youkuaiyun.com/aa464971/article/details/51372204

AndroidManifest.xml 中声明 BroadcastReceiver 具有重要意义。AndroidManifest.xml 是 Android 应用的核心配置文件,系统在安装应用会解析该文件进行组件注册,运行依据其内容调度组件、检查权限和管理进程,它是应用能被系统识别和运行的基础“说明书” [^3]。 BroadcastReceiver 作为 Android 应用的组件之一,需要在 AndroidManifest.xml 中进行声明 [^1]。通过 `<receiver>` 标签声明 BroadcastReceiver,除了使用 `android:name` 属性指定 BroadcastReceiver 的类名外,还可以包含 `<intent-filter>` 子元素,用于指定该 BroadcastReceiver 应该接收哪些类型的广播 [^2]。 在 AndroidManifest.xml 中声明 BroadcastReceiver 后,即使应用未处于运行状态,只要系统或其他应用发出匹配该 BroadcastReceiver 所指定的广播,系统就能根据 AndroidManifest.xml 的配置找到对应的 BroadcastReceiver 并启动它来处理广播。这意味着该 BroadcastReceiver 可以在应用未启动的情况下响应特定的系统事件或其他应用发出的广播,增加了应用的灵活性和响应能力。例如,当系统发出电池电量低的广播,已经在 AndroidManifest.xml 中声明了接收该广播的 BroadcastReceiver 就可以被触发执行相应的操作。 以下是在 AndroidManifest.xml 中声明 BroadcastReceiver 的示例代码: ```xml <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapp"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <receiver android:name=".MyBroadcastReceiver"> <intent-filter> <action android:name="com.example.MY_CUSTOM_BROADCAST" /> </intent-filter> </receiver> </application> </manifest> ``` 在上述代码中,`MyBroadcastReceiver` 类被声明为一个 BroadcastReceiver,并且它将接收 `com.example.MY_CUSTOM_BROADCAST` 类型的广播。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值