[Android] APK 正式发布的安全选项设置

在 APK 正式发布时,有一些常见的安全选项需要设置:

1、禁止设置 debugable=true
取消前:
ss2
取消后:
ss1

1)Project -> Build Automatically,即取消 Build Automatically
2)Project -> Clean
3)Project -> Build
4)Android Tools -> Export Android application

2、禁止设置 allowBackup:
编辑 AndroidManifest.xml 文件,在 application 标签以及每个 activity 标签增加如下属性:

3、检查 BroadcastReceiver 组件暴露风险
分为如下情形:

1)组件无需暴露
如果仅在应用内部通信,可以使用私有receiver。在AndroidManifest.xml为组件加上属性:

该receiver可以接收相同应用程序组件或带有相同用户ID的应用程序所发出的消息。

2)组件需要暴露
分两种情况:

2.1)仅暴露给自己或同一公司的其他应用
方案A:
在AndroidManifest.xml为组件加上属性:

并为被调用组件添加该权限限制:

方案B:
在组件实现代码中使用Context.checkCallingPermission()检查调用者是否拥有权限。

2.2)需暴露给第三方应用
仔细审查组件的代码,保证组件功能可控,避免出现能力泄露或权限重委派(获得额外权限的攻击)等风险,严格校验所有外部输入参数,避免出现空对象引用导致拒绝服务。

另:动态注册组件安全建议:
使用本地广播管理器LocalBroadcastManager注册;
使用registerReceiver(BroadcastReceiver, IntentFilter, permission, Handler) 代替registerReceiver(BroadcastReceiver, IntentFilter),且确保私有权限经过验证签名校验。

Add a Comment

您的电子邮箱地址不会被公开。 必填项已用 * 标注