腾讯视频会员充值20元变2毛?说说bug产生的底层逻辑

最近互联网界又出了个让人垂涎三尺的低级大bug,据说是腾讯视频会员充值每月20元,最后扣除只有0.2元,有人发现bug后甚至冲了100年!!!变成了名副其实的“祖传VIP”!而且腾讯修复bug后,竟然宣布数据不回滚,这些利用bug进行充值的账单可全部兑付!!

让我们来假设一下冲100个祖传vip然后倒卖可以赚多少钱:

成本:0.2*12*100=240元,原价一个要2万多,假设一个“祖传vip”不贪心赚个2000元,100个可以赚20万!!!

没蹭上热点的小编感觉继比特币之后又错过了2个亿。。。

这些bug虽然低级但是影响却非常大,那么这些bug到底是怎样产生的呢?背后的逻辑又是怎样的,让我来简单说明一下。

(本文适合IT初学者或者对IT架构感兴趣的同学)

程序猿其实也分好几种,按照开发语言来分,有js、java、c++等程序猿;按照系统的开发部位来分,有两种,一种是前端程序猿,另外一种是后端程序猿。所谓前端就是那些直面客户的代码,而后端是客户直接接触不到的,放在遥远的服务器上的代码。

让我来画个图示意一下:

前端直白地讲就是人机交互界面,比如我们常用的网页、App等软件,服务端是对前端交互数据的一些反馈和逻辑运算。所以bug要么出在了前端要么出在了后端上。

大部分比较严谨的系统除了在前端有一些逻辑判断外,在后端也需要做个判断。因为前端的代码直接接触客户,可以直接被各种用户篡改,所以需要再在后端做一层防护。

举个栗子:

之前玩过一款游戏,它有个售出装备的系统,然后用某些内存篡改软件在前端直接把输入的装备数改成了负数,因为该游戏没有在服务端对输入的数据格式进行检测(一般卖出数量为负数是非法的,应该拒绝执行减法算法)导致最后装备卖出去不仅获得了金钱,装备数没少反而数量变多了(负负得正)。

所以服务端的数据如果不做前端传过来的数据校验是非常危险的一件事情。反观这次腾讯的bug,肯定是出自一位服务端的程序猿在结算的时候把20元除以了100成了0.2元。对于不是前端用户恶意篡改代码而导致的错误,腾讯只能自吞苦果啦。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180106G0KSX700?refer=cp_1026

相关快讯

扫码关注云+社区