BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 郑柯 关注 3 他的粉丝 发布于 2013年1月29日. 估计阅读时间: 4 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

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中文站会继续关注事态后续发展。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

自己体验提升了,还有个毛插件的生存空间啊,临时工真可怕 by bing quan

自己体验提升了,还有个毛插件的生存空间啊,临时工真可怕

铁老大的软件就是大老软,为了民生,少转包几次不行吗 by gaf king

铁老大的软件就是大老软,为了民生,少转包几次不行吗

长的丑不是你的错,但是长的丑还出来吓人就不对了 by white bonnibell

长的丑不是你的错,但是长的丑还出来吓人就不对了

还能怎么办呢 by shi mike

虽然反制的起因不对,应该从提升本身软件的性能做起,但是以上这些手段不是很正常的方式吗?

文章过于偏激 by x y

屏蔽的目的就是防止有人过快请求。
举个例子,一群人排队,排到的人可以办理一项业务。
假如有人一旦排到了就办个不停,对后面的人自然不公平。
这不是技术问题,在某项技术不是全民掌握的情况下(比如插件抢票),那么在面向公众资源时这技术就有失公允。
当然,在中国这样的不公太多以至于好多人都认为自己应该有能力就该有特权,譬如...不多说

文章过于偏激 by lin Jai

从技术看点来说,应该是讨论如何让售票更加公平一点,而不是 批 “禁”抢票。

事实上,太多人抢票,往往不是一窝蜂,就是盲从。。结果造成了大量的退票。。而这些退票又有很多无法重新售给真正有需要的人,又造成了一票难求的困境。。。所以,禁抢票是必然,在这个基础上,应该制定更好的“规则”,让票更公平地售给有需要的人。

Re: 还能怎么办呢 by Chao Huang

Mike Shi@Baidu?

虽然说,这些反制措施没起到多大的效果,甚至出现了副作用,可是,说这些反制措施“傻大黑粗”的作者,貌似也没提及多高明的办法.... by 曾 国泰

虽然说,这些反制措施没起到多大的效果,甚至出现了副作用,可是,说这些反制措施“傻大黑粗”的作者,貌似也没提及多高明的办法....

Re: 还能怎么办呢 by shi mike

No No No,俺不是Baidu的

铁老大毕竟是老大 by Chen Gang

当12306上线的第一天,就与无数程序员扯上关系了,更何况在急着回家过年的当口。殊不知,程序员最喜欢拿技术解决问题,我见过朋友写代码抢苏宁易购的优惠券的。插件事件只是暴露出来的,我相信还有N多兄弟在暗地尝试“骚扰”12306服务器呢。本来网上买票的人就多,再加上由程序代理买票的(这种访问应该比真人更多),我经常买票刷不出页面就不足为奇了。但不要和铁老大开玩笑,人家毕竟是国家机构。在我们的社会,技术不是最重要的,而是政治。当异常行为影响国家机构运转与法律建立联系,就很恐怖了。

Re: 铁老大毕竟是老大 by jianpeng tong

"程序员最喜欢拿技术解决问题",这句话大亮啊,赞一个

chrome浏览器登陆常被踢出 by zeng jiaolong

真不容易,常被踢出。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

12 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT