历史上的重大软件BUG启示录 第4篇—Google的疏忽

很多的软件Bug源自于输入错误,即便像Google这样的国际大公司。

在Google上搜索的时候,有些结果列表项中带有一条警告,表明Google认为它带有恶意代码。
如果你在2009年1月31日一大早使用Google搜索的话,你就会看到,在那天早晨55分钟的时间内,Google的搜索结果标明每个站点对你的PC都是有害的。这涉及到整个Internet上的所有站点,包括Google自己的所有站点和服务;几乎全世界的Google访问者都受到了影响,无论中文站点还是英文站点。
由于Google认为所有搜索结果都是有害的,所以点击搜索结果的链接后,Google会弹出警告信息,提示该网站可能会损害用户计算机并禁止直接访问。只能将网站地址粘贴到地址栏中才能打开这个网站!
  
这个重大的错误使得Google搜索引擎实际上处于瘫痪的状态。
随后,Google修复了这个BUG,并在博客披露了这次BUG的技术细节。
Google的恶意网站检测功能是和一家非盈利组织StopBadware.org合作,通过在这个组织给出的已知恶意网站名单列表上查找,从而识别出危险站点。这个组织的恶意网站名单是通过人工审核并添加的,在1月31日早晨,对这个列表的更新意外地包含了一条斜杠(“/”)。所有的URL都包含一条斜杠,并且,反恶意网站检测功能把这条斜杠理解为所有的URL都是可疑的,因此,它愉快地对搜索结果中的每个站点都添加一条警告。
很少见到一个简单的输入错误带来的结果如此奇怪、影响如此广泛,但程序就是这样,容不得一丝疏忽。

更值得考虑的是,如果Google恶意网站检测程序对URL合法性进行合理检测,很可能会避免这次人为疏忽带来的影响,并且能提醒恶意网站名单添加者:您输入的URL非法,非法URL位于名单列表的第x行!
一个程序是否健壮,跟程序架构和算法有关、跟严格测试有关,更跟程序员的素养和经验有关。程序员对防御性编程思想的理解程度,对测试的重视程度,在很大方面决定了程序抵御异常情况的能力。

普通与优秀之间,隔着难以逾越的思想鸿沟。

相关阅读

[历史上的重大软件BUG启示录 第3篇—价值5亿美元的简单复用
嵌入式系统](https://aijishu.com/a/1060000…
历史上的重大软件BUG启示录 第2篇—心脏滴血

作者:朱工
首发博客:https://freertos.blog.csdn.net/article/details/52431476
关注FreeRTOS从基础到高级专栏,即时收取FreeRTOS系列文章。

发表评论

邮箱地址不会被公开。 必填项已用*标注