Android性能调优 - 应用安全问题

Android应用安全

1.组件暴露:

像比如ContentProvider,BroadcastReceiver,Activity等组件有android:exported属性;

如果是私有组件 android:exported= "false";

如果是公有组件 android:exported= "true" 且进行权限控制;

2.Log敏感信息泄漏:

3.权限申请

敏感权限调用

在Manifest文件中调用一些敏感的用户权限,敏感行为包括发送、拦截短信,读取、修改通讯录、通话记录,拨打电话,发送地理位置,使用摄像头,访问浏览器历史记录等。函数调用这些敏感行为,可能导致用户隐私数据泄露,钓鱼扣费等风险。

冗余权限

如果调用了非必须的权限,就会出现冗余权限,冗余权限可导致串谋攻击,串权限攻击的核心思想是程序A有某个特定的执行权限,程序B没有这个权限。但是B可以利用A的权限来执行需要A权限才能完成的功能。

4.代码混淆

Android平台的混淆原理是把代码中原来有具体含义的包名,类名,变量名,方法名 等名称全部替换成按顺序排列的无意义的英文字母a、b、c;这样就算反编译出来的代码,也比较难理解;

Android中使用SDK中自带的Proguard工具,添加相应配置即可。

release {
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}

但是混淆后可能会造成编译不通过,需要在proguardFiles文件中进行混淆保护:

5.数据加密(对称和非对称加密)

6.应用加固

加固的原理是通过加密原应用的安装包中的dex文件...

7.网络安全

使用Https和ssl证书校验

8.数据存储

  1. 存储内容不要使用明文
  2. 代码中禁止硬编码重要信息内容
  3. 存储到手机内部存储上
  4. 慎重使用allowBackup属性,设置是否支持备份,默认值为true,如无必要,将值设置为false,避免应用内数据通过备份造成的泄露问题

9.业务漏洞

业务漏洞比如,未登录就允许调用支付等敏感接口,需要后台和app共同校验;

相关推荐
落落落sss3 分钟前
MybatisPlus
android·java·开发语言·spring·tomcat·rabbitmq·mybatis
l1x1n09 分钟前
No.2 笔记 | 网络安全攻防:PC、CS工具与移动应用分析
安全·web安全
代码敲上天.25 分钟前
数据库语句优化
android·数据库·adb
醉颜凉1 小时前
银河麒麟桌面操作系统V10 SP1:取消安装应用的安全授权认证
运维·安全·操作系统·国产化·麒麟·kylin os·安全授权认证
GEEKVIP3 小时前
手机使用技巧:8 个 Android 锁屏移除工具 [解锁 Android]
android·macos·ios·智能手机·电脑·手机·iphone
model20054 小时前
android + tflite 分类APP开发-2
android·分类·tflite
彭于晏6895 小时前
Android广播
android·java·开发语言
与衫6 小时前
掌握嵌套子查询:复杂 SQL 中 * 列的准确表列关系
android·javascript·sql
小小工匠6 小时前
Web安全 - 路径穿越(Path Traversal)
安全·web安全·路径穿越
不灭锦鲤8 小时前
ssrf学习(ctfhub靶场)
网络·学习·安全