安全测试-数据安全测试(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 模拟器真机配置

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

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

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

这就ok了哈

二、 获取 SQLite 文件

A ndroid

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

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

命令:

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

进入shell:adb shell

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

安全测试-数据安全测试(2)
  1. 这里我们获取包 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

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

三、 查看 SQLite 文件

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

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

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

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

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

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

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

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

四、 SQLite 数据安全

4.1 SQL 注入

如果通过应用获取用户输入的数据并将其插入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.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误 信息进行包装。

Original: https://blog.csdn.net/qq_34381178/article/details/126017985
Author: 测试不止点点点
Title: 安全测试-数据安全测试(2)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/815140/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球