全球最大的社交编程及代码托管网站GitHub,在1月15日晚间突然遭遇疑似DDOS攻击,访问大幅减慢。管理员通过日志查询,发现洪水般的访问竟来自中国的12306抢票插件。
“12306订票助手”的开发者iccfish(木鱼)在GitHub上解释:他引用了托管在Github上的Javascript代码,不同浏览器又使用了该插件,导致大量请求涌向Github,最终拖慢了服务器。
这里不妨说说具体原因,供开发者参考:GitHub有个未知安全检测,当访问比较频繁的时候,会直接返回403错误。作者就加了一条规则:如果返回的是403,就每5秒重试一次,并且是永久重试。结果GitHub认为用户访问更频繁了,于是一直返回403,最后成了死循环,再加上作者显然低估了抢票插件的用户数……就正好构成了DDOS(Distributed Denial of Service,分布式拒绝服务)的定义。
作者最终决定,15日晚间将该服务迁移到新浪云计算SAE平台上。目前GitHub已经恢复。SAE工作人员已与作者取得联系,并给出了优化建议,截至目前运行正常。
这个故事提醒我们:永远不要低估“春运”这款产品的用户数,除了国产奇葩12306,海外大神GitHub也能被拖垮。有人调侃,这只是中国网民帮GitHub做的一次压力测试。