chenjcc的个人博客分享 http://blog.sciencenet.cn/u/chenjcc

博文

封堵火车票抢票软件难吗?

已有 3988 次阅读 2013-1-22 13:46 |个人分类:技术交流|系统分类:科普集锦| 技术, 铁道部, 抢票软件

    最近网上讨论抢票软件很火爆。有人主张让它流行起来,因为它不违法。不错,它确实没违法,但从伦理道德层面上讲它违背机会均等原则,而且容易造成网络堵塞。铁道部可以用行政手段下令让厂商禁止开发和发布这类软件。即使这样做,抢票软件也不会销声匿迹。要知道,开发这类软件是不需要多高水平的,很多网站开发人员都会。你封堵了厂商,你封堵不了个人。某人私自开发了自用,谁又能知道呢?为了公平起见,有人建议铁道部把抢票功能加到订票系统中去。如果真这样做,等于鼓励人们进行DoS(Denial of Service)攻击。手段高明的抢票软件可以采用多机联合方式抢票,胜你单机抢票,这样发展下去,铁道部的服务器会不堪重负。搞网络的人都知道DoS攻击是非常有害的,严重的可以导致网络瘫痪。铁道部若自加抢票功能,等于干了件让全球人都笑话的蠢事。有人把抢票软件比喻成电话速拨功能,这样比喻是不恰当的。电话速拨没有并发干同一件事,不会形成公害,而是抢票软件会并发提交同一信息,造成大量无有信息在网上传送,会形成网络公害。
    从技术手段来讲,封堵抢票软件其实是件很容易的事。我初步想了两招。
    第一招:服务器收到订单后,不要立即响应出票,要延迟10秒,如果在10秒内没有继续收到同一订单就出票,否者连同以前收到的订单一起作废。这样,抢票软件的多次提交不但占不到便宜,反而会扑空。
    第二招:用户提交订票时,客户端自动从服务器端获取唯一的订票认证号,认证号由随机数和时间组成。服务器只响应第一次认证号请求,如遇同一订单多次认证号请求,自动作废以前发出的认证号。客户端提交的订单包括订票信息和认证号。服务器收到订单后,首先核对认证号是否有效,作废的认证号作无效订单处理。抢票软件如果发出多个认证号请求,它会收到一个已经作了废的认证号,以后它提交的订单会变得无效。订票优先顺序以认证号获取的时间顺序为准,不是以订单的提交顺序为准,否则又有人抢订单的提交顺序了。
    第二种方法好像比第一种方法更容易实现。第一种方法响应延迟时间多长为最佳?是一个值得思考的事。无论采用哪种方法后,都会起到立竿见影的效果,最终会让抢票软件在市场上绝迹。
 
2013年1月22日


https://wap.sciencenet.cn/blog-788889-655485.html

上一篇:国家自然科学基金很蔑视有响亮成果的申请
下一篇:即刻搜索已经战胜Google?
收藏 IP: 171.66.18.*| 热度|

2 鲍海飞 张骥

该博文允许注册用户评论 请点击登录 评论 (9 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-9 13:21

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部