安全测试-数据安全测试(2)

目录

  前言

一、环境准备

1.1 模拟器软件下载

1.2 账号登录注册

1.3 版本选择

二、获取 SQLite 文件

Android

三、查看 SQLite 文件

四、SQLite 数据安全

4.1SQL 注入

4.2预防 SQL 注入


  前言

         捣鼓了那么久,终于整理出来了,可能中间会出现一些波折和各种因素,但遇到了咱就积极面对积极解决。经资料说明AndroidApp 本地数据存储是使用SQLite 数据库,SQLite 是遵守 ACID 的关系数据库管理系统, 它包含在一个相对小的 C 程序库中。与许多其它数据库管理系统不同,SQLite 不是一个 /服务器结构的数据库引擎,而是被集成在用户程序中。SQLite 查询看起来或多或少像 SQL 一样。  Android 中选择SQLite 的原因是其内存占用较低,也不需要设置或配置数据库,并且可以在 用程序中直接调用。这里只是简单的介绍,后续会进行更详细的项目操作。

一、环境准备

设备:模拟器(Genymotion)【备注:不建议使用真机,因为真机可能会遇到一些环境导致的问题,但有兴趣的小伙伴可以挑战一下】

1.1 模拟器软件下载

模拟器(Genymotion)下载:

https://pan.baidu.com/s/1Qhdc_prrgJa3uwc3oxQjaQ?pwd=abcd 
提取码:abcd

1.2 账号登录注册

Genymotion 需要账号登录,因此我们需要去官网创建账号,因此可以登录软件,去一下连接创建账号:Account Creation – Genymotion Android Emulator

1.3 版本选择

账号创建好后,回到刚刚装好的Genymotion 软件,输入账号密码,点击Next ,选择personal use,继续next即可使用个人版了。

1.4 模拟器真机配置

 

 

这就ok了哈

二、 SQLite 文件

Android

 SQLite 数据库默认在 Android 中存储在/data/data/[package name]/databases/位置,扩展名为.db 件,注意 Android 设备需要 root

1. 进入设备的/data/data 目录,查找对应的测试包。

命令:

检查真机是否连接adb:adb devices

进入shell:adb shell

进入对应的文件夹目录:cd /data/data

 2. 这里我们获取包 com.global.cy.blanco db 文件。进入包文件 databases 目录内部可以看到 db 文件。

命令:

进入对应的包:cd com.global.cy.blanco

查看文件:ls

进入数据库文件夹:cd databases/

查看文件:ls

退出:exit

把对应的文件下载到本地桌面:

adb pull /data/data/com.tal.kaoyan/databases/future_db.db C:\Users\86181\Desktop

三、 SQLite 文件

 db 文件后我们可以使用DB Browser for SQLite 来查看数据内容。

下载地址:Downloads - DB Browser for SQLite 根据自己的系统版本来选择安装即可

1. 启动应用,然后依次点击菜单:文件->打开数据库选择我们导出的 future_db.db 即可 看数据库表结构和内容。

2. 点击浏览数据菜单可以查看表具体数据内容。

 3. 点击执行 SQL菜单可以输入 SQL 命令来进行数据的增删改查

四、SQLite 数据安全

4.1SQL 注入

如果通过应用获取用户输入的数据并将其插入SQLite 数据库,那么就有可能发生 SQL 注入 击的安全问题。

SQL 注入就是通过把 SQL 命令插入到 表单提交或输入域名的查询字符串,最终达到欺骗服 务器执行恶意的 SQL 命令

比如有一个表单,用户可以输入 name

<?php

$name = $_GET['name'] ;

$dbh->query("SELECT * FROM users WHERE name='{$name}'") ;

那么当用户输入的 name Python'; DELETE FROM user; 时会变成什么?

SELECT * FROM users WHERE name='Python'; DELETE FROM user;'' ;

这条语句运行一下,会发现什么?  我们的 user 表被清空。

4.2预防 SQL 注入

SQL 注入,我们需要注意以下几个要点:

1. 永远不要信任用户的输入。

2. 对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双引号 进 行转换等

3. 永远不使用动态拼装 SQL ,可以使用 SQL 预处理语句。

4. 永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库 连接

5. 不要把机密信息直接存放,加密或者 hash 掉密码和敏感的信息。

6. 应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误 信息进行包装。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值