文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
10.3 前端 JS 限制绕过测试
10.3.1 测试原理和方法
很多商品在限制用户购买数量时,服务器仅在页面通过 JS 脚本限制,未在服务器端校
验用户提交的数量,通过抓取客户端发送的请求包修改 JS 端生成处理的交易数据,如将请
求中的商品数量改为大于最大数限制的值,查看能否以非正常业务交易数据完成业务流
程。
10.3.2 测试过程
该项测试主要针对电商平台由于交易限制机制不严谨、不完善而导致的一些业务逻辑
问题。例如,在促销活动中限制商品购买数量,却未对数量进行前、后端严格校验,往往
被攻击者所利用,如图 10-18 所示。
图 10-18 测试流程图
测试过程以 http://www.xxx.com/xxx-100-2856.html 网上商城绕过团购购买数量限制
购买团购价商品为例。
步骤一:购买限购的商品,商品限制购买数量为 2 份,将其加入购物车,如图 10-19
和图 10-20 所示。
图 10-19 商品订购页面
图 10-20 商品订购数量限制
步骤二:通过观察发现客户端在前端浏览器使用 JavaScript 做了购买限制,尝试绕过
限制提交购买请求,可以通过抓包修改数量字段,改为 100 个后成功提交,如图 10-21 所
示。
图 10-21 直接绕过 JS 限制完成订购
10.3.3 修复建议
商品信息,如金额、折扣、数量等原始数据的校验应来自于服务器端,不应该完全相
信客户端传递过来的值。类似的跨平台支付业务,涉及平台之间接口调用,一定要做好对
重要数据,如金额、商品数量等的完整性校验,确保业务重要数据在平台间传输的一致。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论