吴怖卫---实践课:I至诚 案例分析
这个作业属于哪个课程 | 至诚软工实践F班 |
---|---|
这个作业要求在哪里 | 作业要求点这里 |
这个作业的目标 | i至诚APP案例分析 |
学号 | 212106736 |
第一部分 找Bug(黑白盒测试)
-
Bug发生时的测试环境
- Android版本:10
- 测试软件:福州大学至诚学院APP
- I至诚版本信息:1.9.9.80670(202111081003)
- 网络使用情况:WIFI
- 条件:手机和电脑共处于同一网络下
- 使用软件:Fiddler
- 出现的bug:获取学生信息页面,可篡改或获取数据
-
Bug的可复现性及具体复现步骤
-
此次数据属于满足特定要求即可发生
- 通过Fiddler软件,I至诚获取HTTPS信息,获取到I至诚的POST请求,添加必要信息以及COOKIE可直接访问学生页面
-
-
Bug具体情况描述
-
描述出现了什么样的Bug,具体现象是什么
-
本次出现bug为个人隐私信息泄露,严重影响使用I至诚的学生及教职工的个人信息隐私安全,以及增加个人信息被篡改的风险。
-
具体现象:可通过Fiddler软件获取I至诚软件发送的POST请求,通过I至诚发送的POST请求,获取到发送的地址内容,学号信息和Cookie,其中Cookie中的内容为最高权限,通过此Cookie可访问任意学号或职工号对应的指定信息。
-
-
辅以配图的展示这一Bug,并进行适当说明
-
-
此为Fiddler获取POST请求
-
-
此为通过POST请求内捕获的信息访问的学生页面,以获取最高权限,可通过上方code=学号,修改学号获取到每个学号对应的信息,通过代码编写可以十分容易将POST返回的JSON数据捕获,并且通过返回的JSON数据中的confirmList,confirmList是JSON数组,通过遍历JSON数组中columVal节点获取到内容。
-
通过测试,编辑按钮可同时同步后端数据库,修改的内容可成功实现,本人已通过修改自己家庭成员信息。家庭信息容易遭到篡改。
-
-
-
Bug分析
-
Bug的可能成因,需要作出足以自圆其说的分析,并可以类比与之相似的情况或个人项目经历
- 数据裸露在跑,未进行加密。轻松获取最高权限,将安全性抛于脑后。
- 本人之前做过毕设,是关于考勤管理,在用户登录的过程中,用户登录数据未进行加密,数据库中内容也未加密,容易获取到登入信息。
- 两者都是对数据未进行加密,让数据在裸跑,大大增加了数据泄露的风险。
-
-
Bug的严重性
- 此次Bug存在⭐⭐⭐⭐⭐致命性安全性漏洞
- 系统功能不完善,未对数据传输返回文件加密,返回数据容易获取
- 安全性低:抓包小白都可轻易获取I至诚内用户信息,大佬可随意将I至诚服务器内的个人信息轻松爬取储存。
最高权限容易获取,拥有最高权限,可通过I至诚做更多的事情,对我们自己的I至诚钱包进行盗刷。 - 用户体验:若用户知道该软件出现个人信息泄露,会造成用户流失,让自己的隐私成为别人手里的数据,得不
到应有的保护
-
对于Bug的预期及改进建议
-
需要结合之前对Bug的分析和严重性展开叙述
-
bug存在个人隐私泄露,大大降低个人信息安全性,让上万条个人信息在交互中进行裸跑
-
严重时此些消息容易给犯罪分子,他们获取我们的信息,去诈骗家中老人钱财,家中老人法律意识淡薄,容易上当受骗
-
需要说清楚这个地方应该是什么样的,以及应该如何设计可以做到这一点
-
设计者应该对数据进行加密,并且撤回最高权限设置,考虑分配低权限,多权限,供不同身份者使用
-
第二部分 功能分析(参考8.6节对工作的估计,和14.1节软件工程的质量)
-
根据软件已有的功能,评估其做到这个程度大约需要多少时间?(例如:团队人数6人左右,计算机大学毕业生,并有专业UI支持)。(必答)
开发阶段 周数 需求分析,文档规范撰写 2 界面设计 2 界面美化 1 框架搭建,模块接口设计 2 服务器搭建 2 Android与IOS编码 7 程序测试与bug修改 3 测试报告 1 事后总结、改进 1 产品发布准备 1 -
分析这个软件目前的优劣(和微信端的“至诚教务助手”相比),哪个更实用?(必答)
- 本人觉得微信端的至诚教务助手更加实用
- I至诚使用目的为:打卡,出校申请,这些是在微信端没有的功能。
- 微信现在是每个人使用频率最高的软件,如果将I至诚中的功能加在微信端,那会使得微信端更加使用和方便。
-
从各方面的问题,推理出这个软件团队在软件工程方面可以提高的一个重要方面(具体建议)。
- 可以发布有奖调查问卷给学生,一旦反馈得到采纳,将对提出问题者进行奖励,学生是使用这个软件的最大群体,各个出现的问题都会在这个群体中出现,我们需要得到这个群体给我们的反馈来对这个问题进行维护。
-
你在第一部分发现的bug,为何软件团队不能在发布前修复?他们是不知道,还是有意不修复?你觉得是什么原因?可以从下面的可能性中选取几个:
- 具体的设计质量不高:对于设计随意
- 开发人员粗心大意
- 测试把关不严,敷衍了事,没有注意在特殊的配置或环境下测试
- 其他
第三部分 建议和规划(参考《构建之法》第8章功能的定位和优先级;第9章项目经理)
这个软件有很多可以提高的部分,如果你是新上任的项目经理,你将如何提高从而使其更富竞争力?请针对以下问题进行思考:
-
市场现状
1.目前市场上是否有其他类似功能的产品、竞品?
- 竞争产品存在,但此软件使用与校园内,无竞争关系
2.上述产品的定位、优势与劣势在哪里?
-
定位:校内学生以及教职工
-
优势:适用人群固定,无竞争产品
-
劣势:功能完善不够,安全性低,页面不美观
4.上述产品之间呈现什么样的关系,哪些为竞品关系?以及竞争中的各方态势如何?
- 当前产品只在至诚校内使用,无竞争关系
-
-
市场与产品生态
- 产品的用户群体之间是否存在一定的关系?是否有利用其相互作用二次构成特定用户生态的可能性?
- 存在师生关系,可以通过相互的作用构成特定的用户生态
- 产品的子产品,以及其他相关产品之间是否存在一定的关系?是否有利用各个产品特性之间的相互关系二次构成产品生态的可能性?
-
产品规划
1.你要在当前软件的基础上设计什么样的新功能?为何要做这个功能,而不是其他功能?为什么用户会用你的产品/功能?你的创新在哪里?可以用NABCD分析。
- 可以添加学生课表,出校申请流程状态等,此类功能在I至诚中暂时没有,或有的是不完善的功能,例如:课表属于基础功能,用户肯定会使用到,其次出校申请流程状态属于I至诚中长期以来缺少的重要功能,申请了假条,但无法查看是否审批,当前假条的状态,无法准确的知道自己是否请假成功。
2.如果你是项目经理,可以招聘6个人,并且有4个月的时间,你认为应该如何配置角色(开发,测试,美工等等) 才能在第16周如期发布软件的改进版本,并取得预想中的成绩。
-
请为你的团队设计16个周期每周的详细规划。
-
工作分配 时间/周 需求分析,文档规范撰写 2 界面设计 3 界面美化 4 客户端框架搭建,模块接口设计 6 服务器搭建 7 Android、IOS编码 12 程序测试,bug修改 15 正式上线,发布产品 16