|
目前,我用LR给公司作一个网站帐务系统的并发测试时,发现了一个潜在的安全性问题。该问题是功能测试发现不了的。
脚本录制的是一个网站用户登录网站购物、结算的过程。在运行场景中设置1个用户迭代20次,执行场景,都通过了,检查后台数据库,发现该网站用户的帐户已经为负。而客户明确要求当用户的帐户上的金额不足于购买选购的产品时,是不允许购买的。手工测试发现当用户的帐户上的金额不足于购买选购的产品时,系统是做了判断,不会允许用户购买。LR测试时为什么系统没有判断就从让其购买了,导致帐户为负呢?分析判断觉得系统可能是在客户端对用户帐户上的金额与选购产品的价格进行的比较,金额不足时,就不让客户端发送购买请求;而lr是模拟的客户端与后台服务器之间的通信,如果在脚本中让其忽略掉比较(或始终让其通过比较),lr就能把购买请求发送给服务器,就会导致帐户上的金额为负。后来与开发人员交流,证实了我的分析判断,他们就是在客户端进行的比较。
由于涉及金钱,所以这种设计方式是个严重的潜在安全性问题。将来如果用户利用lr等测试工具,就可能无限制的购买商品,会给网站严重的损失。
搞电子商务测试的同行们,你们看看你们的系统有无同样的问题。 |
|