android应用安全——数据安全

简介:


 数据安全包含数据库数据安全、SD卡数据(外部存储)安全、RAM数据(内部存储)安全。

       android中操作数据库可使用SQLiteOpenHelperContentProvider的方式。使用SQLiteOpenHelper操作数据库时,数据库存放在data/data/<packagename>/databases/目录,这个目录只能是应用自己访问,相对是安全的,但是root用户,这个目录也是透明的,因此,私密数据也要做到加密存储。使用ContentProvider操作数据时,本质上也是使用SQLiteOpenHelper,这时需要在AndroidManifest.xml来注册这个Provider,注册Provider就对外提供了访问这个数据库的接口,其他应用就可以访问这个数据库了,为了数据库数据安全就需要控制访问,如果不想对外提供访问只需在AndroidManifest.xml注册Provider时设置android:exported="false";如果想提供对外访问能力,最好设置android:readPermissionandroid:writePermission这两个属性,来分别指定对这个ContentProvider中数据读和写操作的权限。android数据库还要预防数据注入的攻击。

    SD卡是一个公共的存储空间,只要申请了如下权限,就可以操作SD卡。也就是说SD卡数据是最不安全的,很容易被其他应用读取篡改,如果SD中存放数据,建议存放一些无关紧要的数据,重要数据加密存储或者存放到RAM中。

    <!-- 在SDCard中创建与删除文件权限 -->     <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>       <!-- 往SDCard写入数据权限 -->     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

     RAM 数据存储在/data/data/<package name>/files目录中,只允许当前应用访问,安全性较好,但是root后的机器也是可以被读取篡改的,这里的数据也不是绝对的安全,RAM的敏感数据也要加密存储。


    数据安全最重要的是解决数据加密的问题,密钥存储问题,选择合适的加密方法。加密方法,密钥存储建议使用

Native本地库实现。


/**
* @author 张兴业
*  http://blog.csdn.net/xyz_lmn
*  android开发进阶群: 241395671
*/



     本文转自xyz_lmn51CTO博客,原文链接:http://blog.51cto.com/xyzlmn/1230743 ,如需转载请自行联系原作者

相关文章
|
7月前
|
编解码 安全 Shell
Android 应用安全与逆向:超实用命令总结,让你的开发效率倍增!
今天分享的是关于 Android 安全防护和逆向常用的命令,准备好你们的键盘和鼠标,让我们开始吧!
137 0
Android 应用安全与逆向:超实用命令总结,让你的开发效率倍增!
|
安全 算法 Java
Android应用安全开发之浅谈密钥硬编码
在阿里聚安全的漏洞扫描器中和人工APP安全审计中,经常发现有开发者将密钥硬编码在Java代码、文件中,这样做会引起很大风险。
5408 0
|
6天前
|
Android开发
安卓SO层开发 -- 编译指定平台的SO文件
安卓SO层开发 -- 编译指定平台的SO文件
12 0
|
2月前
|
存储 Java 开发工具
Android开发的技术与开发流程
Android开发的技术与开发流程
78 1