以前是工行科技的员工,跳槽后工行推出了“融e购”电商平台,里面有秒杀活动,但是需要中文验证,很难秒杀上。看到之前的同事通过内网秒杀收获不少,一怒之下看了看源码,分享给大家。
进入“融e购”页面后,右键--查看源代码
图1、验证码生成方式
第一张图说明秒杀的中文验证码是后台生成的,并不是js脚本生成。由SeckillImgServlet这个Servlet,根据点击的时间点actyId=(new Date()).getTime()生成。
很明显,后台生成验证码,对于秒杀这类时效性较高的功能,固然会后台服务增加压力,但对纯js验证,安全上提高不少。
图2,3、触发验证
这不说了啊,jQuery调用inputCodeSubmit函数异步提交。
图4、根据后台返回值进行页面更新
后台验证后的结果var resultFlag=data.resultFlag,如果resultFlag=“ok_success”则表示验证成功。orderId表示是否秒杀成功(其值为true或false)
图5、秒杀成功的提示码
总结:
通过页面代码来看,跳过验证去秒杀是不可能的。因为是通过验证函数来调用后台的秒杀函数,返值给orderId确定是否秒杀成功。
如果意淫的话,可以在第四张图注入var resultFlag=“ok_success”,甚至orderId=true。这些代码会跳过验证,但是只是意淫,因为连后台的秒杀程序也跳过了。后台数据没有改变,在付款的时候还是会失败的。