zjut2019移动应用开发大作业
《移动应用开发》课程设计报告
题目 安全辅助移动工具
目录 2
第一章 安全辅助移动工具的方法 3
1.1 ANDROID STUDIO介绍 4
1.2 系统开发环境 4
1.2.1 服务器端环境要求 4
1.2.2 客户端环境要求 4
1.3主要开发语言 4
1.4开发原则 4
第二章 安全辅助移动工具需求分析 5
2.1系统简介 5
2.1.1系统使用对象 5
2.1.2功能概述 5
第三章 安全辅助移动工具的概要设计 6
3.1该系统的业务流程 6
3.2系统数据库设计 9
第四章 安全辅助移动工具详细设计 I
4.1项目开发规范 I
4.1.1系统目录规划 I
第五章 安全辅助移动工具实现 II
5.1系统界面实现 II
第六章 系统测试及安全性 XI
6.1系统测试 XI
6.1.1 数据正确性测试 XII
6.1.2 系统安全性测试 XII
6.1.3 系统并发测试 XII
6.1.4 系统功能测试 XIII
6.2 本章小结 XIII
第一章 安全辅助移动工具的方法
本系统特点是小型、轻量、并发性低,采用了安卓原生技术开发。原生开发依然是开发者采用最广泛的开发方式,优点十分显著。相比其他开发方式而言,原生开发可以访问设备中的所有功能,运行速度更快,性能更高,而且可以启用优秀的离线处理和存储能力等等,提供最佳的用户体验,最优质的用户界面,最华丽的交互。原生开发人员众多,开发环境成熟,有许多的开源库提供开发人员调用,可是方便实现各种设计效果。
1.1ANDROID STUDIO介绍
Android Studio 是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。
1.2 系统开发环境
1.2.1 服务器端环境要求
系统操作环境:ubuntu 16.04.6
系统开发工具:android studio、 AMP(apache2\mysql\php7)
系统数据库:MySQL5.7
1.2.2 客户端环境要求
要求操作系统:android操作系统
1.3主要开发语言
在该系统的设计研发过程中主要使用的语言是JAVA,JAVA在诸多的程序语言里是一个高级的编程语言,它具备了良好的性能。
后端业务逻辑主要是用的语言为PHP。PHP是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
1.4开发原则
前后端分离,代码云执行。前端采用android原生开发技术开发,后端使用LAMP,使用php作为编写后端语言。
第二章 安全辅助移动工具需求分析
2.1系统简介
对网络安全爱好者来说,对服务器进行端口扫描和对网站进行漏洞检测是经常要做的事,所以笔者就想设计一款安全辅助移动工具,可以在没有pc的情况下对ip进行一些简单的探测。考虑到手机性能及扩展支持的问题,代码基本上是云执行,以http请求的形式来完成探测及获取结果。
2.1.1系统使用对象
安全从业人员、网络安全爱好者。
2.1.2功能概述
主要功能包括个人信息的修改、天气查询、端口扫描、struts2漏洞检测、网站子目录爆破、whois查询、基本hash加密、wpa2握手包破解。
第三章 安全辅助移动工具的概要设计
3.1该系统的业务流程
本系统设计的的主要业务流程如下
个人信息修改模块

天气查询模块

端口扫描模块

Struts2漏洞检测模块
子目录爆破模块
whois查询模块
hash加密模块
与上类似
3.2系统数据库设计
本系统数据库中仅有用户表user
名称 类型 长度 备注
username char 30 Primary key,not null
phone char 30
password char 32 Encrypted by md5
第四章 安全辅助移动工具详细设计
4.1项目开发规范
系统的开发规范在系统研发过程中是一个非常重要的因素,良好的规范往往使得项目具有美感,也让系统开发团队之间更协调,工作更轻松。
4.1.1系统目录规划
表 4.1系统目录规划表
目录 名称及说明
/Final_Project 总目录,在此目录下存放系统的所有文件和目录
/Final_Project /java/com.example.final_project 用于存放Java文件和activity文件
/Final_Project /res/layout 此目录用于存放系统所有样式xml
/Final_Project /res/drawable 此目录用于存放系统资源文件(如图片)
/Final_Project /manifests/ 此目录用于存放系统配置文件
第五章 安全辅助移动工具实现
5.1系统界面实现
应用主界面如5.1图所示:

图 5.1 应用主界面
应用上部为标题,中部为登录界面。
使用正确的用户信息登陆后进入个人中心,个人中心如5.2图所示:

图 5.2 个人中心界面
点击个人信息,进入用户个人信息界面,如图5.3所示:

图 5.3 用户个人信息页面
文本框中自动读取当前登录用户的信息,除用户名属性为只读外,其他属性均可修改。
例如修改当前用户密码为1234(原为图中12345),确定后再次点击保存修改个人信息,修改成功,如图5.4所示:

图 5.4 用户修改成功
回到个人中心,点击天气查询,根据城市查询天气,查询结果如图5.5所示:

图 5.5 查询天气
回到个人中心,点击端口扫描,根据ip查询端口,查询结果如图5.6所示:

图 5.6 端口扫描
回到个人中心,点击网站目录,输入ip和类型,查询结果如图5.7所示:

图 5.7 目录爆破
回到个人中心,点击哈希加密,输入字符串并选择类型,加密结果如图5.8所示:

图 5.8 哈希加密
回到个人中心,点击whois,输入ip,结果如图5.9所示:

图 5.9 whois
第六章 系统测试及安全性
6.1系统测试
软件测试是在软件开发中一个非常重要的环节,其贯穿了软件开发和运行的整个过程。针对软件进行测试能够发现系统漏洞、系统缺陷,可以帮助软件开发人员及时改正,从而整体提升系统性能。
6.1.1 数据正确性测试
数据正确性测试旨在对数据格式是否准确进行相应的验证,而在本系统的测试中,主要进行了以下数据正确性测试:
1.点击综合信息的反馈。
2.用户在点击个人信息时,显示个人信息的正确性。
3.用户在注册时,用户名已注册过的能否再注册,注册用户登录时,密码不正确或者用户名不存在时系统的反馈。
4.用户使用功能回显的正确性。
6.1.2 系统安全性测试
系统中密码以md5方式存储。

图 6.1 数据库内容
以登录为例,最初版本存在一个任意登录的sql注入漏洞
测试数据 username=admin password=1’or’1’=’1 –
在后端添加waf.php过滤后修复该漏洞(waf.php的主要功能是正则删除敏感字符)

图 6.2 waf.php部分代码
6.1.3 系统并发测试
利用requests.session模拟同时十个用户进行注册操作,最终结果正确。
6.1.4 系统功能测试
功能测试对于系统的功能进行检验,并检验系统其功能能否达到原先设计的标准。
我系统的功能进行了初步测试,本系统功能基本到达了预期效果。
6.2 本章小结
该章节针对该设计的系统开展相应的测试,以此来检验系统的正确性,对数据是否准确进行验证,其次对系统功能的实现也进行了相应的验证,并优化存在的缺陷,保证设计的系统合理运行确保功能实现;在对系统进行功能测试时候,同时也对设计的系统对于其功能的效率进行检验,对于操作流程复杂、耗时长的环节进行改善,以此满足用户的需求。