《移动智能终端安全》课件第4章.pptx
《《移动智能终端安全》课件第4章.pptx》由会员分享,可在线阅读,更多相关《《移动智能终端安全》课件第4章.pptx(31页珍藏版)》请在文库网上搜索。
1、第4章 SQLite数据库及面临的安全威胁4.1SQLite数据库简介数据库简介SQLite是一个开源的嵌入式数据库引擎,没有分离的服务处理过程,它直接读写磁盘文件。在实际应用时,SQLite常被编译成动态库来使用。完整的SQLite数据库包含表、触发器和视图等内容,且仅存放在单独的磁盘文件中。数据库文件格式是基于交叉平台的,可以任意复制数据库文件从32位系统到64位系统。第4章 SQLite数据库及面临的安全威胁SQLite没有独立进程,与所服务的应用程序在应用程序进程空间内共生共存。SQLite代码嵌入到应用程序代码内部,作为托管SQLite的应用程序的一部分。SQLite支持Window
2、s/Linux/Unix等主流操作系统,能够和很多程序语言结合,具有占用资源较低、存储效率高、查询快以及可用单文件存储数据库内容等特点。SQLite具有简洁、模块化的体系结构,并引进了独特的方法进行关系型数据库管理。SQLite中的模块将查询过程分为几个独立的任务,就像在流水线上工作一样。在体系结构栈的顶部编译查询语句,在中部执行,在底部处理存储并与操作系统交互。SQLite体系结构如图4-1所示。第4章 SQLite数据库及面临的安全威胁图4-1SQLite体系结构第4章 SQLite数据库及面临的安全威胁1.接口接口接口是一个C语言库,用来接收用户指令。接口处于栈的顶端,由SQLite、C
3、、API组成。程序、脚本语言以及与SQLite交互的库文件最终都是通过接口与SQLite进行交互。2.编译器编译器编译器由三个独立的部分组成,分别为分词器、语法分析器和代码生成器。当执行一个包含SQL语句的字符串时,接口程序需要将该字符串传递给分词器。分词器的任务是把原始的字符串分割成标记,然后逐个传给语法分析器。第4章 SQLite数据库及面临的安全威胁编译过程从分词器和语法分析器开始。分词器和语法分析器协同处理文本形式的结构化查询语句(SQL),分析其语法有效性,然后转化为底层能更方便处理的层次化数据结构。SQLite开发团队编码实现了SQLite的分词器,而SQLite的语法分析器是由L
4、emon语法生成器生成的。Lemon语法生成器采取了一些特殊的预防措施来防止内存泄露,并且性能较好。语法分析的过程是:SQL语句先被分解成词法记号,经过评估后以语法树的形式重组,然后语法分析器将重组后的语法树传给代码生成器。第4章 SQLite数据库及面临的安全威胁代码生成器将语法树翻译成SQLite专用的汇编代码,这些汇编代码由最终通过虚拟机执行的指令组成。代码生成器的工作是将语法树转换为完全由该汇编语言编写的微程序并交给虚拟机处理。第4章 SQLite数据库及面临的安全威胁3.虚拟机虚拟机架构栈的中心部分是虚拟机,也叫作虚拟数据库引擎(VDBE)。VDBE是基于寄存器的虚拟机,在字节码上工
5、作,这种特点使得它可以独立于顶层操作系统、CPU和系统体系结构进行工作。VDBE的字节代码(即虚拟机语言)由100多个被称为操作码的任务构成,这些操作码围绕数据库进行。VDBE是专为数据处理而设计的虚拟机,它的指令集中所有的指令要么用来完成具体的数据库操作(如打开表的游标、做记录、提取一列或者开始一个事务等),要么是以某种方式控制栈为完成这些操作做准备。第4章 SQLite数据库及面临的安全威胁命令集中在一起并以恰当的顺序组合,就可以满足复杂的SQL命令的要求。SQLite中的所有SQL语句从选择和更新记录到创建表、视图以及索引,都是先编译成虚拟机语言,然后形成独立的、已经定义的、可以完成给定
6、命令的指令集。VDBE是SQLite的核心,SQLite之前的所有模块都用于创建VDBE程序,之后的所有模块都用于执行VDBE程序,每次执行一条指令。第4章 SQLite数据库及面临的安全威胁4.后端后端后端由B-tree、页面高速缓存(Page cache)以及操作系统接口(OS Interface)组成。(1)B-tree:B-tree用来维护磁盘里的SQLite数据库。数据库中的每个表格和目录都使用单独的B-tree。所有的B-tree被存储在同一个磁盘文件里。B-tree的职责是排序,维护多个页之间的关系,保证快速定位并找到一切有联系的数据。第4章 SQLite数据库及面临的安全威胁(
7、2)页面高速缓存:B-tree模块要求来自磁盘的程序块大小为1024个字节,页面高速缓存负责读、写程序块并可高速缓存程序块。页面高速缓存具有重新运算和提交抽象命令的功能,负责关闭数据库文件夹。当B-tree驱动器需要修改页或重新运行时,会通报页面高速缓存。为了保证所有的需求都能被快速、安全和有效地处理,页面高速缓存会处理所有的细节。(3)操作系统接口(OS Interface):为使不同操作系统下的应用能够实现移植,SQLite操作系统的接口程序使用一个提取层。第4章 SQLite数据库及面临的安全威胁5.工具和测试代码工具和测试代码工具模块中包含各种实用的功能,如内存分配、字符串比较、Uni
8、code转换等公共服务。测试模块中包含大量回归测试用例,用来检查数据库代码的各个角落。该模块执行大量回归测试,任何人都可以运行并改进测试,使得SQLite越来越可靠。SQLite的特性和设计理念如下:(1)零配置:SQLite不需要DBA(数据库管理员),因此配置和管理SQLite非常简单,只需很少的内存即可运行。第4章 SQLite数据库及面临的安全威胁(2)移植性:SQlite既可以编译运行在各种操作系统和嵌入式平台中,也可以工作在32位和64位体系结构中,并同时适应大字节序和小字节序。(3)紧凑性:SQLite只包含一个头文件、一个库以及关系型的不需要外部数据库的服务器。(4)简单性:作
9、为程序库,SQLite的API是最简单易用的API之一。(5)灵活性:作为一款嵌入式数据库,SQLite拥有强大而灵活的关系型数据库前端和简单紧凑的B-tree后端。第4章 SQLite数据库及面临的安全威胁(6)自由授权:SQLite的全部代码保存在公共域中,并且不需要许可证。SQLite的所有内容没有附加版权要求。(7)可靠性:SQLite源代码包含大约70000行标准ANSIC代码,代码模块清晰、注释完整、易理解、易定制且方便获取。(8)易用性:SQLite具有动态类型、冲突解决、可将多个数据库“附着”到一个连接上的功能,提高了SQLite的易用性。第4章 SQLite数据库及面临的安全
10、威胁SQLite可以将外部数据库“附着”到当前的连接中。假如用户当前连接到数据库foo.db,同时需要另外一个数据库bar.db工作,则无需打开单独的连接,再在这两个数据库之间切换,而是可以简单地将感兴趣的数据库用下面的SQL语句附着到当前连接:“ATTACH databasebar.db as bar;”。现在bar.db中所有的表都可以访问,就像这些表存在于foo.db中一样。完成时也可以剥离,这使得在数据库之间的各种操作如同复制表一样容易。第4章 SQLite数据库及面临的安全威胁4.2SQLite数据库的安全机制数据库的安全机制数据库通常保存着企业、组织和政府部门的重要数据,是信息系统
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 移动智能终端安全 移动 智能 终端 安全 课件