AndroidManifest.xml文件——安全属性(app风险)

转载请标明出处:
http://blog.csdn.net/sinat_15877283/article/details/50903606
本文出自: 【温利东的博客】


起因:

昨天下午收到一封邮件,内容如下:

这里写图片描述

还附上了一份《安全检测报告》 。 ps: 我的内心是抓狂的!抓狂的!抓狂的!(有好几个问题竟然是因为拿不到我的清单文件就说我的程序存在异常)
郁闷归郁闷,还是针对于这份检测报告乖乖的写了一篇 针对于该《安全检测报告》的中问题的分析和解决方案。
这里写图片描述

借此事件,记录一下关于 清单文件中几个可能会引起安全问题的属性。

干货内容:

  • android:debuggable 属性的设置可能会引起 被动态调试的风险。
 <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" 
        android:debuggable="true">

debuggable 属性有两个值“true|false”;
只有android:debuggable=”true”时我们才可以在手机上调试Android程序。
但是当我们没在AndroidManifest.xml中设置其debug属性时:
使用Eclipse运行这种方式打包时其debug属性为true,使用Eclipse导出这种方式打包时其debug属性为法false.
在使用ant打包时,其值就取决于ant的打包参数是release还是debug.
因此在AndroidMainifest.xml中最好不设置android:debuggable属性置,而是由打包方式来决定其值。
如果设置了 android:debuggable=”true” 那么在正式打包时 把它设置成false吧!!!

  • android:allowBackup 属性的设置可能会引起用数据被任意备份的风险
<application
            android:allowBackup="false"
            android:label="@string/app_name">
        ......
    </application>

Android API Level 8 及其以上 Android 系统提供了为应用程序数据的备份和恢复功能,此功能的开关决定于该应用程序中 AndroidManifest.xml 文件中的 allowBackup 属性值,其属性值默认是 True。当 allowBackup 标志为 true 时,用户即可通过 adb backup 和 adb restore 来进行对应用数据的备份和恢复。
一旦应用程序支持备份和恢复功能,攻击者即可通过 adb backup 和 adb restore 进行恢复新安装的同一个应用来查看聊天记录等信息;对于支付金融类应用,攻击者可通过此来进行恶意支付、盗取存款等;因此为了安全起见,开发者务必将 allowBackup 标志值设置为 false 来关闭应用程序的备份和恢复功能,以免造成信息泄露和财产损失。

  • android:exported 属性的设置可能会引起用组件导出的风险。
     android:exported=["true" | "false"]

android:exported 是Android中的四大组件 Activity,Service,Provider,Receiver 四大组件中都会有的一个属性。
如果设置了导出权限,都可能被系统或者第三方的应用程序直接调出并使用。 组件导出可能导致登录界面被绕过、信息泄露、数据库SQL注入、DOS、恶意调用等风险。
主要作用是:是否支持其它应用调用当前组件。
默认值:如果包含有intent-filter 默认值为true; 没有intent-filter默认值为false。
请参考:android:exported 属性详解

附加:

androidManifest.xml的一些属性:

属性作用其它
android:allowBackup数据是否可备份[true/false] 默认为true 其属性值默认是 True。当 allowBackup 标志为 true 时,用户即可通过 adb backup 和 adb restore 来进行对应用数据的备份和恢复。https://segmentfault.com/a/1190000002590577
android:debuggable调试状态“使用Eclipse运行这种方式打包时其debug属性为true,使用Eclipse导出这种方式打包时其debug属性为法false.在使用ant打包时,其值就取决于ant的打包参数是release还是debug.”http://blog.csdn.net/hudashi/article/details/8698142
android:exported是否支持其它应用调用当前组件默认值:如果包含有intent-filter 默认值为true; 没有intent-filter默认值为false。http://blog.csdn.net/watermusicyes/article/details/46460347
android:launchMode启动模式[“singleTop”/”singleTask”/”singleInstance”] “standard” (默认)
android:sharedUserIdLinux用户ID
android:installLocation安装位置[“auto” / “internalOnly” / “preferExternal”]http://xin3336019-sina-com.iteye.com/blog/1845766

属性太多了,就先写到这里吧…… 希望我的分享对你有帮助


转载请标明出处:
http://blog.csdn.net/sinat_15877283/article/details/50903606

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值