目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
问题描述
据报道,某黑客通过软件抓包、PS身份证等非法手段,在某城商行手机银行APP内使用虚假身份信息注册银行Ⅱ、Ⅲ类账户。
其操作方法具体来说,是在注册账户过程中,先输入本人身份信息,待进行人脸识别步骤时,利用软件抓包技术将银行系统下发的人脸识别身份认证数据包进行拦截并保存。
而后,在输入开卡密码步骤,将APP返回到第一步(上传身份证照片步骤),输入伪造的身份信息,并再次进入到人脸识别的身份验证步骤,此时,再上传此前拦截下来的包含其本人的身份信息数据包,使系统误以为要比对其本人的身份信息,然后用本人人脸通过银行系统人脸识别比对,使得成功利用虚假身份信息注册到银行账户。
通过这种操作,成功注册银行Ⅱ类账户76个,然后将包括身份证号、银行卡号、绑定的手机号在内的账户信息打包卖给其他人,共获利22010元。也导致此城商行从19年1月18日至今一直关闭手机银行APP软件中Ⅱ、Ⅲ类账户开户链接功能。
问题分析
水平越权缺陷漏洞是Web应用常见的业务逻辑漏洞之一。
它的形成原因是由于服务器端对客户提出的数据操作请求过分信任,忽略了对该用户操作权限的判定。
攻击者使用一个合法账户,即可对存在越权缺陷漏洞的其他账户数据进行非法的操作,例如查询、插入、删除、修改等常规数据库命令。用户名或者用户ID是Web程序用来判断对哪个账户的数据进行操作的依据,这个参数如果通过客户端来提交,并且Web应用未对该参数做检查校验的情况下,通过修改请求数据中的相应字段则实现越权数据操作。
服务器端系统仅仅对该关键字段进行匹配,并没有验证该关键字段是否属于发起请求的账户,此项安全策略的缺陷就是越权数据操作漏洞的产生的原因。针对该漏洞的攻击者修改请求中的某些关键字段后提交数据,就可以对任意用户的数据进行操作。
通常在实际的Web应用中,不一定是用户名或者用户ID作为数据操作的判断字段,还有可能是其他一些字段。无论是什么字段,存在越权数据操作漏洞的Web应用都没有对它们的账户归属进行判断,没有确认发起请求的账户是否具有操作该数据的权限就允许了数据库去执行相应命令。
测试手段
在越权漏洞检测方法中,测试人员使用两个以上用户账号,比如使用两个浏览器分别登录两个账号,互相测试是否能对另一方的用户数据进行越权操作。测试人员需要对比testl账户和test2账户的身份识别参数,确保将testl账户的数据操作请求中所有身份识别参数修改为test2账户对应数值。
如果test2账户提交数据能够操作成功;则标记此为水平授权漏洞。
系统优化方式
系统为了防止水平越权漏洞,建议防篡改设计,即客户端发起联机交易点击下一步预处理,服务端产生一个交易流水号,将流水号与交易信息(客户号、身份信息等)存入缓存服务器redis中,客户端提交时传入流水号及交易信息,服务端进行交易数据校验。如校验数据不一致,则判为数据被篡改,直接返回并提示客户。
接下来再说说做测试遇到线上问题怕背锅?
一直有线上问题不可怕,可怕的是一直有同一类型的线上问题。遇到线上问题时,你是讳莫如深,还是直言不讳呢?相信大部分人还是很担心翻车的,认为翻车是自己能力不足的体现。
但是线上问题并不是一无是处的,他们是一个宝贵的学习机会。
首先可以反映出我们流程中哪一步做的不足,需要改进;
其次可以将这些问题记录下来,补充到wiki中分享给其他同学,下次测试相似功能的同学可以在测试用例中补充该测试点。
线上问题的来源可能是客服反馈的问题、线上灰度时发现的问题、业务团队通过数据分析发现的问题或者是技术团队监控报警的问题。
当我们从各方收到疑似线上问题时,就要分析是bug导致、操作问题、外部原因、还是需求如此。如果是bug导致,就要立即成立临时小组,包括相关的业务、产品、开发、测试和运维人员。
开发同学需要及时在群里同步定位情况和解决进度。如果需要发布hotfix版本,需要和测试沟通,提前协调测试环境和准备测试数据。同时,需要找上一级开发领导审查改动的代码,确认可以解决该问题并且影响范围可控(或者在改动前多方一起设计改动方案)。
上线后,技术人员从监控中验证和观察服务状态,业务人员从业务数据中观察线上情况。如果是由于最近一个版本导致的P0级别的问题,但是一时半会儿无法想到解决方案,或者解决方案可能需要比较长时间的验证,那评估是否需要通过回滚代码解决。
如果需要回滚代码,需要同步该版本的业务和产品,需要同步上下游系统该版本的功能撤销,可能导致新功能下线等。
到这里就完了吗,并没有。
线上问题解决后,相关的人员需要尽快再开个小会,复盘整个问题的经过、解决方式和改进措施,以及总结各方是否有应对不及时的情况。针对改进措施最好建立任务追踪并分配到人。
如果严重级别较大,还需要拉上项目组人员一起参与。复盘的结果文档需要同步到项目组群里,并且最好保存在一个线上问题文件夹中。
大家时不时回顾一下这些问题,加深印象,降低之后出现类似问题的概率。这才是线上问题的价值。
出现线上问题之后,第一时间修复问题很重要,同时也需要做好总结复盘,否则下次还是有可能掉进同一个坑。
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
人生需要不断地奋斗,即使面对一个又一个的困难,也不要灰心丧气,更加不要气馁。人生的路,需要一步一步往前走,即使前面有泥泞坎坷,也要匍匐前进。相信只要前进的勇气在,的就在。新的一天,继续奋斗。
不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼前的已经和从前不一样了。
让自己的生活多一种可能,给自己的未来多一份惊喜,人生所有的和惊喜,都是在你全力以赴的道路上遇到的。