老读者都知道我关于开放源码软件的态度。如果有可能,我就使用开放源码软件,理由有不少,例如,我不必付费,而且很容易获得软件的源代码。
由于可以获取源代码,对聪明的人来说,找到并报告开放源码软件的bug就称为一场公平的比赛。但这并不是说,开发源码软件就比商业性软件经受了更多的考验。
在理想情况下,我们期望商业性软件没有bug,并且比开放源码软件更加安全和可靠。如果(开放源码或者商业)软件制造者遵守自己的承诺,人们就会用它的产品。否则,人们就会使用其它可替代的软件。
我常常对商业性软件公司报以批评的态度,由于它们盈利为目的生产软件,所以我期望(或许这个期望不够现实)它们的产品应该比开放源码软件更有安全性。尽管开放源码软件的bug不像商业性软件的bug那样具有新闻效应,但它们依旧是客观存在的,例如Apache漏洞。
由于ISS(Internet Security System)公司最近报道了开放源码Apache Web server的主要bug,Apache与IIS公司算是结下了梁子——在关于如何以及何时通知公众软件的bug方面。我对Apache bug的存在并不感到吃惊,吃惊的是IIS公司处理这件事情的方式。
Apache认为IIS公司利用宣布这个漏洞进行商业竞争“抢跑”,我同意这个观点。当某种大量使用的软件存在漏洞或者后门时,人们需要知道如何去修补它。通常人们认为软件制造商有责任首先找到漏洞,这样它才会有时间来找出一种可以接受的解决问题的方案。
例如,过去IIS公司在寻找和报告微软的Web server软件的bug上不遗余力,但是它仍然做到了在微软发布补丁之前不向公众透露bug的存在。我不知道IIS公司在处理Apache这一事件中到底在哪儿出来错误。
我相信,寻找软件的bug是一项荣耀的工作,但承担这项工作的人需要为公众负责。由于Apache是业界领先的Web server平台,在找到合适的解决方案之前,IIS公司就发布Apache bug的细节信息是非常不付责任的做法。