12306怎样才能防止抢票?

        抢票的软件已经泛滥了,北大青鸟出来的,写过几行程序的人都能做出抢票软件来。因为一个网站的前端代码都摆在那,把html和js代码抓下来一个一个读一遍,就能对订票的流程了如指掌。用到的无非是GET后者POST,如果实在觉得读代码太费劲,或者有人说老夫不懂html、js,那也没关系。随便找个http抓包的软件开着,把订票的流程跑一边,看看提交数据的格式,然后自己就可以去伪造了。fiddler2就是这样的抓包工具,不管你是普通明文的http包还是加密的https包,统统拿下。

    

Fiddler2抓取的12306登录请求

          我想大家应该很容易猜到每个字段的意思,然后想干什么就可以干什么了。

          抢票的关键有两个,首先是你得知道什么时候有票,然后再是以最快的速度提交订单抢票。恰好12306网站提供了足够的方式让我们得到这些想要的。查询余票的信息只需要提交一个请求,填写出发地目的地等信息,然后可以从返回的页面中解析出所有的列车信息,包括座位类型余票数等等。查询动作可以重复执行,直到发现有满足需求的车票为止。然后提交一个订票的表单,车票就到手了,世界还是美好的!

        了解了抢票的原理,我们再来讨论如何防止抢票。其实根源就在于它是基于http协议的,前端的代码和提交的数据都可以轻易的被截获、分析,从而制作出伪造的请求。在http这个框架下面,不管铁道部的专家如何修改页面,修改判断是否为真是请求的条件(比如http头部的字段),对伪造都难以造成困扰,只不过是一时有效。

        如果把订票做成一个专用客户端软件,通过客户端来查询订票,数据在客户端内封装加密后传送给服务器。这时候代码是隐藏的,看不见除非你反汇编,数据内容也不能够抓取,抓取的都是秘文,没什么用。要想伪造数据提交订单,难度相当大,门槛就大大提高了,抢票的问题会比现在好很多。

        随便说说,天朝的XX部做一个网站尚且耗资数亿,要是开发一个客户端岂不是要数十亿,如此劳民伤财的事或许不做更好。

        你抢或者不抢,票就在那里,不会变多也不会变少,只有铁路变宽了,车次多了,票自然不必抢。我们这些搞技术的也可以轻松回家,不必如此劳心费力。

       

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值