如果你是铁道部,只从技术上考虑,你会如何对付各种刷票插件??事实证明,用行政手段搞约谈,不仅被自己人骂(新
如果你是铁道部,只从技术上考虑,你会如何对付各种刷票插件??
事实证明,用行政手段搞约谈,不仅被自己人骂(新华社),也被全国老百姓骂,还被一些网络公司笑话。造成这些原因,最大的一点就是因为这个项目花了超级多的钱。
接下来言归正传:
大家都知道,很多刷票插件为了用户使用方便都会在铁道部的页面中注入自己的DOM元素,那么根据这一点,铁道部完全可以把这些DOM元素枚举出来,然后随机判断,只要有其中任何一个或两个或多个存在,就直接拒绝服务,然后干脆来个【请别用刷票插件】之类的警告。
在和同事讨论这个问题的时候,有同事居然说这会增加铁道部的访问量,会多一次请求,怕服务器吃不消。
其实我想说的是,这完全是多虑了。因为枚举和随机检查,是跟随登录操作和查询车票的操作进行的。但凡想买票的人,首先必须登录,然后必须进行查询操作。
在下不才,以菜鸟的角度考虑一下对付刷票插件的技术手段,以期抛砖引玉。
上有政策,下有对策
[解决办法]
看这句话前面那个,“限制间隔时间为40秒就行了”
铁道部的那破技术做不过刷票的那帮人的。
[解决办法]其实 要想 这样的插件肯定会 定时发送请求来查看是否有票的,而且 铁道反正也做了 非常蛋疼的闸,何不在闸口做文章, 想找出来 很简单,可以根据频率浮动,人为情况 不可能 保持5s一次 坚持10分钟的。
直接拦截 分流。
[解决办法]我认为用任何技术手段都很难从根本上消灭刷票软件,正如游戏很难消除外挂一样,我认为要从订票规则上下手,如果订票规则和流程上消除了重复操作,自然刷票软件就没有用了。
如何消除订票时的重复操作呢,比如,你提交你的信息后就等待系统自动分配,其实就是类似于抽奖,你点再多也没用。但是这必然会有人提交很多信息,这时就需要采用实名制了,就是说你的身份证只能订一次,而且车票会和身份证绑定,或者用手机号验证,因为一个人不可能有太多手机号的。
[解决办法]直接就是提前20天报名,抽彩票放票
[解决办法]私有的企业,搞的东西为什么就那么好呢。
[解决办法]对于使用刷票软件的账号采取封号处理,效果应该很明显,而且注册账号也给个限制,注册成功后24小时内不能订票。
[解决办法]这种部门,关系比重比技术大,还有如果在用js来做检测,他的网站本来就慢,
现在还加那么多检测,恐怕用户体现更加糟糕。
[解决办法]浏览器搞插件买票是一种,这方便了很多人避免去安装更多的软件,但是对于那种本地安装的客户端,通过获取session,cookie,key的信息来不断请求服务器的软件,这种就不涉及在dom上增加结构。这种方式就完全是在模仿HTTP请求,把HTTP请求的内容设置的和12305一致,然后不断的去请求。包括他的验证码,曾今在CSDN上有高手讨论过自动识别这个问题,这也能满足他每隔几秒去请求一次。
要杜绝这样的问题我个人觉得要综合性的考虑:
1.更严格的买票规则,但是不是更复杂的买票流程
2.对于异常请求的处理,或对于过于频繁的请求的处理。可以放在一个队列中,不管他怎么请求,你这个请求一旦进入到队列,只要从队首出来,返回信息不变。再频繁的请求也没用。
3.中国人口基数是个问题,唯有考虑一种最有效的方式以达到最大最优的运输要求。
不才,纯属愚见。
[解决办法]HTTP 请求分为 Human 和 Program 的,Human 是人—浏览器—HTTP 交互的,而 Program 是通过程序—HTTP 交互的
任何的 HTTP 请求只要浏览器上能使用,那么所谓的插件、程序应用都可以使用,无从防范!
目前最为广泛且廉价的防范手段就是 Captcha,学名很长,即:全自动区分计算机和人类的图灵测试,最常见的 Captcha 就是图形验证码。
图形验证码之所以有效源于计算机科学、模式识别和人工智能等相关学科研究的缺失导致的,根据既有技术而言,一个好的图形验证码不可能被程序 100% 地识别,至少在今后的一二十年内不可能。
12306.cn 上的验证码机制太简单了,看了一下,12306 验证码的图像生成基本上网上滥大街的程序产生的,建议增加字符扭曲、旋转等图像变形技术。
------解决方案--------------------
从前端控制肯定不好使,还得从后台下手,
后台监控session请求,如果一段时间内请求过于多的话,就提示用户输入验证码(这个要复杂点才行)
[解决办法]使用智能验证码,就能防止。
[解决办法]在客户端js做验证,正如楼主所说,点击的时候用js在客户端做dom元素判断,这个枚举元素可以不停的维护,刷票页只管引用,插件再厉害也不会修改js文件吧。这样js前端的执行效率还是很快的,又不会增加后端的请求次数。即时插件再厉害把引用文件去掉,也完全可以再后端刷票请求时,加一个执行js前段验证的标志位,没执行js验证的统统封杀。具体不太清楚插件能不能删除原有的dom元素,我个人认为不能删除原有的元素,如果可以随便删除dom,所有的网站都是有危险的了,都可以成为钓鱼网站。
[解决办法]有一个方法可以永久解决这个问题,那就是保证每个人都能有票,就不用去抢了,自然也就没有了诸如抢票插件的生存土壤