Android安全策略

来源:互联网 发布:软件测试的理论知识 编辑:程序博客网 时间:2024/06/05 02:04

开发一款app,保证app安全很重要,别人可以通过反编译查看你的代码获得与服务器的交互的接口,攻击服务器,监听数据报文;
下面是几种方式保证app的安全性的策略:
1.代码混淆
这样可以防止反编译时看到你的代码逻辑,修改逻辑重新打包,具体可以详见http://blog.csdn.net/u012378167/article/details/49683173
2.AndroidManifest.xml
allowBackup=”false”
Android API Level 8及其以上Android系统提供了为应用程序数据的备份和恢复功能,此功能的开关决定于该应用程序中AndroidManifest.xml文件中的allowBackup属性值[1] ,其属性值默认是True。当allowBackup标志为true时,用户即可通过adb backup和adb restore来进行对应用数据的备份和恢复,这可能会带来一定的安全风险。

<application        android:allowBackup="false"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:supportsRtl="true"        android:theme="@style/AppTheme">

具体详见http://www.freebuf.com/articles/terminal/60778.html

3.
exported=”false”
activity,service,receiver不需要被其他应用使用时可以设置不可扩展;需要时,需定义signature或者signatureOrSystem级别的权限;
关于静态广播的signature级别权限详见点击这里

进程内动态广播注册建议使用LocalBroadcastManager;或者使用registerReceiver(BroadcastReceiver, IntentFilter, broadcastPermission, Handler)替代registerReceiver(BroadcastReceiver, IntentFilter)

4.对存储的敏感信息加密,增加破解难度(RSA非对称加密)

5.对传输的数据进行加密处理(MD5)加密;
使用HTTPS协议传输

6.WebView明文存储密码风险
设置

//这个方法在API18已经废弃了,不提供这样处理WebView.getSettings().setSavePassword(false)

6,用户多次错误登录,提示用户等待一段时间再次尝试,提供找回密码功能

7.登录界面劫持
模仿一模一样的登录界面,将真正的页面切换到后台;用户输入信息会被知晓,解决:
(1)通过获取栈顶Activity,判断当前运行的是否本程序,一旦发现应用被切换(可能被劫持),给予用户提示以防范钓鱼程序的欺诈。
(2)使用HTML5架构或android+HTML5混合开发,实现登陆、支付等关键页面,降低被劫持的风险。

0 0