iOS 安全攻防系列(三):sqlite3数据库

      苹果的iOS设备大量使用数据库文件来存储包括通讯录、短信、电子邮件以及一些其他敏感数据在内的信息sqlite数据库软件十一种开源的、公共域的数据包。标准情况下,sqlite数据库的文件扩展名是.sqlitedb ,但也有数据库使用了.db的扩展名,或者其他的扩展名。(但我们知道在类Linux系统中,那个扩展名并不重要。)在我们开发中也经常用会碰到有一些大量数据需要存储,比如用来缓存图片、歌曲、电影等。

上一篇文章说到如何获取手机联系人,但获取到之后是一个sqlitedb文件,做正向开发的都知道,这是一个sqlite 的数据库,如果不确定可以用命令查看一下

$ file cacheImage.db 

cacheImage.db: SQLite 3.x database


目前市场上有一些很好的图形化工具如(mesasqlite)。mac os X 已经包含了一个sqlite命令行客户端工具。

从命令行调用sqlite3客户端工具:

$ sqlite3 cacheImage.db 

SQLite version 3.8.10.2 2015-05-20 18:17:19

Enter ".help" for usage hints.

sqlite> 

sqlite> .exit


.exit 退出。回到终端提示符下

一些常用的操作命令:

sqlite> .tables

imageCache

例举出数据库中所有的表。

sqlite> create table messages(message_id interger primary key,

   ...> sender,

   ...> subject,

   ...> _to,

   ...> cc,

   ...> bcc);

创建一个表,此时可以再拿上边那个查看所有表的名再次查看。

然后就是一些基本增删改查命令。


      在做正向开发的时候,我们经常用到数据的存储,很多时候是会用到sqlite3 的。同样,在iPhone设备上存在着一些敏感的数据,他们也是用sqlite存储的。比如联系人地址薄,攻击者就对它很感兴趣。

      联系人地址薄包含设备中存储的所有联系人的所有记录。在我们的开发中获取联系人的时候会用到AddressBookUI.framework  和AddressBook.framework这两个框架。它的数据库名字就叫做AddressBook.sqlitedb。                      可以 从/private/var/mobile/Library/AddressBook/AddressBook.sqlitedb 中可以找到地址薄数据库。联系人都是以明文的形式存储在sqlite中。我们可以用selector语句查询就可以得到相关的信息。

在我们自己开发的应用中也经常会用到sqlite。那如何保护我们的数据。

1)对数据进行加密保护。

2)根据需要,擦除SQL记录。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值