11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

12306.cn 反制浏览器代码被指“傻大黑粗”

  • 2013-01-28
  • 本文字数:1309 字

    阅读完需:约 4 分钟

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 判定为“插件用户”,不能正常登陆,买不到车票。

对于这些反制措施,作者认为:

  1. 12306 用的那些技术反制手段真心很糙,很临时工。一个词形容:傻大黑粗。
  2. 12306 这些小花招,在浏览器厂商面前,效果不大。
  3. 12306 的反制措施还带来更大的网站崩溃可能性,殃及无辜。

文末,作者给 12306 提出 4 句话:

  1. 每一个登陆 12306 的用户,都有权利选择使用的浏览器及正当手段提升使用体验,屏蔽只会加剧无谓的劳动量。
  2. 请不要再聘用实习生或者临时工进行屏蔽抢票插件,请尊重程序猿的智商。
  3. 12306 对“无辜”被屏蔽的用户造成极大的不公平。
  4. 12306 作为投资 5 亿的网站,请亮出你技术屏蔽的“杀手锏”。

在微博评论中, Super_Wang 指出:

用技术手段屏蔽标准 http 请求。。。无语,只要它没离开 http,找出规律也就是个时间问题。对关键请求加单次有效的短信延时二次认证应该是个不错的办法,客户体验就难说了

执信飘飘想听听其他人的看法:

大量游戏外挂都不能得到有效解决,何况这是一个甚至没有做验证码适配的脚本程序而已,个人觉得这的确很难做处理。因为不具有很明显的特征性,很难判断。

InfoQ 的读者们,你们遇到过被屏蔽的情况吗?如果有,使用的是哪些浏览器?InfoQ 中文站会继续关注事态后续发展。

2013-01-28 09:145278
用户头像

发布了 479 篇内容, 共 141.2 次阅读, 收获喜欢 42 次。

关注

评论

发布
暂无评论
发现更多内容
12306.cn反制浏览器代码被指“傻大黑粗”_JavaScript_郑柯_InfoQ精选文章