1 月 28 日,已经是 2013 年春运正式开始的第三天,那寄托着异乡游子急切心情的粉红纸片,依旧一票难求。
前两天发生的 12306 订票助手插件拖垮 GitHub 事件,风波仍未过去。铁道部为了保证“公平”,他们开始采取技术手段,针对使用插件的浏览器采取反制措施,其结果如何,目前看来,恐怕不能令他们和他们的上峰满意。
网友码农 1999 在新浪微吧上发布文章《傻大黑粗 + 殃及无辜:12306 技术反制猎豹浏览器代码级分析》,列出了 12306.cn 的具体反制措施,其中主要有四种手段。
手段一: 频繁修改具体功能函数名称,让抢票插件调用失效。
这是 12306 开始技术反制时最常用的小技俩。码农都知道,这种“小修小补”的技术屏蔽手段,只要针对 12306 修改的具体功能函数做修改,即可实现插件正常使用。整个破解及插件更新时间不超过 1 小时。
手段二:1 月 20 日开始屏蔽浏览器 user agent
1 月 20 日进入春运购票最高峰(可订 2 月 8 日车票),12306 使出了屏蔽浏览器 user agent 的手段,如此一部分没有用抢票版的用户也被屏蔽,一些用户反应未用插件却登陆 12306 时白屏,进入不到网站。
针对屏蔽 user agent,只要修改浏览器的用户代理即可实现登陆 12306。
手段三:限制连续 2 个操作的时间间隔,所有浏览器在未使用抢票插件情况下或无辜中枪。
如在提交订单时 12306 判定输入验证码及提交的时间间隔短,即使验证码输入正确,亦会被 12306 弹出“验证码错误”。此种屏蔽手段造成的后果是:1、抢票插件自动提交订单失效;2、无论使用哪种浏览器的用户,无论使不使用抢票插件,只要“被判定”时间间隔短,即提交订单失败…破解此屏蔽手段,甚至不需要修改插件代码,只需取消抢票插件的“自动提交”功能,手动输入验证码即可。
手段四:12306 后台增加一些逻辑判断,会踢出用插件用户的登录状态。
这些逻辑判断包括:
限定操作时间间隔、提交订单时间间隔、查询刷新间隔等。
这些手段均不能保证只屏蔽抢票插件用户,均有可能让无辜的用户,被 12306 判定为“插件用户”,不能正常登陆,买不到车票。
对于这些反制措施,作者认为:
- 12306 用的那些技术反制手段真心很糙,很临时工。一个词形容:傻大黑粗。
- 12306 这些小花招,在浏览器厂商面前,效果不大。
- 12306 的反制措施还带来更大的网站崩溃可能性,殃及无辜。
文末,作者给 12306 提出 4 句话:
- 每一个登陆 12306 的用户,都有权利选择使用的浏览器及正当手段提升使用体验,屏蔽只会加剧无谓的劳动量。
- 请不要再聘用实习生或者临时工进行屏蔽抢票插件,请尊重程序猿的智商。
- 12306 对“无辜”被屏蔽的用户造成极大的不公平。
- 12306 作为投资 5 亿的网站,请亮出你技术屏蔽的“杀手锏”。
在微博评论中, Super_Wang 指出:
用技术手段屏蔽标准 http 请求。。。无语,只要它没离开 http,找出规律也就是个时间问题。对关键请求加单次有效的短信延时二次认证应该是个不错的办法,客户体验就难说了
执信飘飘想听听其他人的看法:
大量游戏外挂都不能得到有效解决,何况这是一个甚至没有做验证码适配的脚本程序而已,个人觉得这的确很难做处理。因为不具有很明显的特征性,很难判断。
InfoQ 的读者们,你们遇到过被屏蔽的情况吗?如果有,使用的是哪些浏览器?InfoQ 中文站会继续关注事态后续发展。
评论