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

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

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

                      

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


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

Native本地库实现。


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

更多相关文章

  1. 在 Android 应用程序中使用 Internet 数据
  2. android中使用sqlite、复制assets下的数据库到SD卡、支持大于1M
  3. 2015Android设备、系统、分辨率最新统计数据
  4. 2010-03-02 传智播客—Android(四)数据存储之五网络
  5. 22、从头学Android之Android的数据存储--SQLite
  6. Android入门篇五:使用全局变量在Activity之间传递数据
  7. 第十二章:Android数据存储(下)
  8. 基于 android 数据备份恢复的一种实现

随机推荐

  1. python学习的第一天---
  2. 如何在python中使用命名组和datadict从正
  3. 【问题解决方案】ImportError: No module
  4. 120行python代码解锁10000分微信跳一跳
  5. 使用特定顺序的ID列表从Django数据库中获
  6. Python3入门(六)——函数式编程
  7. Python中psutil模块的安装
  8. python环境配置问题及解决办法集锦
  9. SQLAlchemy使用笔记--简介
  10. 在seaborn.jointplot中绘制两个分布