下冰雹 · 2020年10月22日

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

image.png
很多的软件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系列文章。
推荐阅读
关注数
3263
内容数
54
介绍FreeRTOS的基本功能,移植与使用。主要介绍FreeRTOS的裁剪、任务、内存管理、队列、信号量、任务通知等基本组成,看完可以会用FreeRTOS,高级篇会深入介绍FreeRTOS的实现细节、方法、技巧。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息