BT

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

12306再次陷入危机,网友发起开源项目

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

中秋国庆难得八天长假,有人想要回家与亲人团聚,有人想要举家出游。每当长假,买火车票总是大家津津乐道的话题。回想今年春节前夕,铁道部12306购票网站的性能问题仍历历在目,众多网友献计献策,时隔几月,12306再次陷入重重危机,3亿多的天价疑云暂且不论,网站的漏洞层出不穷,页面频现完整错误堆栈,如此“豆腐渣工程”引起广大程序员的热议。

截止到9月底,在国内知名安全网站乌云上与12306有关的漏洞就已经不少了,比如9月18日的“中国铁路订票系统(12306.cn)修改任意用户密码”就让人捏了一把冷汗,而9月27日提交的“12306漏洞一包裹”,通过曹政的一条微博更是引起了激烈的讨论。该漏洞的简要描述中这样写道:

XSS、绝对路径泄漏、SQL注入(分站有个注入,好几亿的项目,没敢跑库,跑坏了赔不起.......)

而曹政微博中给出的截图更让人瞠目结舌,直接将Spring Framework中的DataIntegrityViolation错误堆栈打在生产系统的页面里,其中还给出了具体的SQL语句,在生产系统中将错误堆栈直接呈现给用户的作法实在欠妥:

select * from TB_INFO_CLCS where flag = 'Y'  and czdm = 'G' and ziz like '%6'%' order by cxdm 

酷壳博主陈皓表示虽然这条SQL用了like,性能不理想,但是推测该表是字典表,也就几十条记录,问题没有网友想象的这么大。在网上还流传着不少NullPointerException和NoSuchMethodException,比如现在还可以访问该错误页面

弯曲评论上转发了一篇对于12306后台技术框架及异常堆栈信息的分析,文中不仅给出了超长的完整错误堆栈,还指出12306使用了如下设施:

  • 数据库:Oracle
  • 应用服务器:WebLogic
  • 开发框架:Spring\Hibernate\Struts
  • 连接池:C3P0

通过页面源代码还发现,网站上的CSS和JS文件居然放在同一个目录之中,这种做法让人感觉有些难以置信。

虽然12306的问题如此之多,也有网友提到12306的根本问题不在技术上,但还是有很多人纷纷表示希望通过社区的力量来帮助铁道部,让大家买票的道路更加顺畅。京东商城副总裁李大学通过微博表示:

为了程序猿们可以顺利在12306预订到火车票,我提议成立12306NG开源项目组。有兴趣参加的请转起来!我负责筹资并以一个程序猿老兵名义奉献不止•••

随后,12306NG开源项目组正式成立,在其官方论坛中通报了项目的进展情况:

在大家的支持下,目前本项目进展顺利:
1、已吸纳牛人10多枚,涵盖数据库、大并发、高性能、分布式架构等多领域。将逐步与大家公布。
2、项目范围日渐清晰,技术框架渐显眉目。

论坛中讨论气氛浓烈,有人从软硬件上给出建议,也有人认为主要的麻烦在于IO,还有人从项目实施方面提出自己的看法。大家都指出,铁路购票系统与普通的电商和互联网网站有着很大的区别,其复杂度也远高于它们,所以不能简单地照搬那些网站的成功经验。

如果您也希望为12306NG项目贡献自己的一份力量,不妨关注其官方微博。期待在2013年春运之时,12306在性能和稳定性方面能有所改善,让大家都能买到回家的车票。

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

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

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

但是对神秘的铁路客票放票和留票原理不了解啊。 by 老鹰 胖

但是对神秘的铁路客票放票和留票原理不了解啊。

AWS by 张 同操

Awesome!

那么请问 by Wang Yuxing

插队的问题怎么解决?不是你想的那个插队,我是说特权阶级的插队

从个人经验来说,系统架构师是很难跨行业领域的 by 林 大海

不知道这个开源项目组,有没有售票系统的领域专家,没有深度理解需求和IT现状的情况下,如何能保证架构的有效性?

——P.S. 本人所从事行业跟铁道绝无半点关系,谢绝跨省。。。

对于12306的一切都表示淡定 by GUAN ZHENXING

对于12306的一切都表示淡定!

Re: 对于12306的一切都表示淡定 by 刘 松

12306做的太烂了。
提出12306NG开源项目太有创意了,而且对现实有十分积极的意义,希望它有一个明确的最终目标,而且最终能达到这个目标。
从技术角度看,架构问题是12306最大的问题,而架构这种东西不是靠堆人就能做好的,对于开源项目也是一样。
同样希望这个项目能为业内提供一份技术方案的美餐~

Re: 从个人经验来说,系统架构师是很难跨行业领域的 by Yin Register

售票系统的领域专家--这个确实很有必要

给前辈们顶顶 by liu Mengfei

给前辈们顶顶
政府这次真是把老百姓给忽悠了。
大家要是真把开源项目做好了,政府还愿意买单吗?

允许的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通知我

8 讨论

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT