关于IE浏览器中出现的相关问题,可以上溯到上世纪九十年代期间微软公司在浏览器大战中的急功近利思想。微软今天播下的种子,将在明天收获安全隐患的果子吗?
今年夏初的一天,我隔着窗户看见邻居正在离其房屋约两英尺的墙跟种一棵小树,我就想,几十年后这种树会长得非常庞大,目前栽得这么近,将来肯定会破坏他的房屋地基。我本来想警告他这一问题的,但我一想到每当我的狗出去时,他总是大声斥责,就没有提醒他。常言道,君子报仇,十年不晚,等上50年也可以。
我在院子周围种树和其它植物时,都是按照其长大的距离在它们之间预留空地的。我为什么会这样做呢?因为我是一个安全顾问嘛。
作为一名安全顾问,我经常会看到其他人为将来的灾难播下种子。我发现人们总是重复犯着相同的错误,到目前为止,在一定程度上,这还是可以原谅的:我们日常使用的许多软件代码是在对开发人员进行缓冲区溢出、规范化等方面的培训前编写的,许多软件都是软件编写高手从人才辈出的异常激烈的竞争环境中脱颖而出。
现以IE浏览器为例,IE 3和IE 4版本引入了客户端脚本、流式音频、DHTML、ActiveX控件、内容通道和其它许多很酷的功能。因为当时的人们并不会因安全原因而改变使用的浏览器,故安全问题并没有受到重视。微软以加快开发周期在浏览器大战中决胜,微软并不是以高压手段或营销方式促使用户改变使用的浏览器的,而是靠功能取胜。在IE 4发布后的第一个24小时内,用户每6秒钟就下载一份拷贝,总数据下载量达到了10TB。很快,IE就确立了其霸主地位,直到今天,IE浏览器仍然上市场上的“老大”。
但现在人们选择浏览器就以考虑安全为主了,微软的浏览器客户正在逐步减少,纷纷转向诸如Mozilla基金会的Firefox浏览器,尽管Firefox浏览器的功能少得多,但其安全性能要好得多。用户对经常出现新危急缺陷的产品很容易失去信心。
不过,微软显然已吸取了教训。尽管对IE中出现的安全缺陷的报告似乎“无休止”,我认为,微软已经在别人发现缺陷之前,悄悄修正了IE中数以百计的安全缺陷,并改进缺省的安全设置,增加功能——如弹出式窗口过滤和插件管理等。微软正在为自己过去对安全的不重视付出代价,但它正在努力修正产品中的缺陷。
可能微软做得还不够,但最起码开始行动了,而且是朝着正确的方向前进。但我对它预防未来出现问题所采取的措施表示怀疑。它可曾回过头来修正了URL欺诈缺陷,再退一步,它是否考虑过这一缺陷?它对这种与操作系统紧密集成的策略是否提出过质疑?它目前编写的代码能否抵御将来的攻击或我们意想不到的威胁?现在我可以忍受IE中的缺陷,但我需要看到微软为将来播下正确的种子。
也许有人会问,如果你不了解将来的威胁,怎么采取预防措施?答案很简单:遵守最基本的安全准则,永不背离原则。在所有的安全缺陷历史上,许多问题是可预测的,如果遵守基本的安全准则,那些问题都可以避免。
假如我出去警告邻居那棵树的威胁,他也不一定会挖出树苗移走。所以那棵树还长在那里,现在看起来倒是不错,但我是名安全专家,每天看见那棵树,我心里都不舒服。