顏國偉/撰 2005/05/17
無論今日Mozilla/Firefox等自由軟體形式的瀏覽器如何盛行,但恐怕只能在一些包袱較小的個人與家庭使用,對機構與企業而言,他們恐怕有不得不持續用IE的理由與苦衷。
此話怎說?舉例而言,IE使用不符合W3C規範的CSS呈現特效,使用很近似但其實還是與JavaScript有別的JScript,或者因為擅改JVM 而導致正統Java Applet無法相容且正確地執行等,這些都還是小問題,真正的大問題在於ActiveX。許多企業運用ActiveX來開發自用的網頁型用戶端應用程式,這些程式幾乎完全無法在非IE的瀏覽器上執行,不僅是Mozilla/Firefox,就連挪威的Opera、KOffice中的 KOnqueror/Safari(Apple以KOnqueror為基礎所自研的Mac用瀏覽器)等都無法執行,這正是企業非持續死抱IE的原因。
什麼是ActiveX?
想了解ActiveX的故事,且讓我們穿越時光隧道,回到1995年。ActiveX可以說說這是Microsoft為了抵制1995年的 Java Applet而提出,Java Applet是小型的Java應用程式,只要替Netscape Navigator瀏覽器加裝Java外掛程式(Java Plug-In),就可以在瀏覽器內點擊(click)網頁連結的方式,下載應用程式到用戶端的瀏覽器內,並在瀏覽器內執行,而在此之前瀏覽器的功用除了瀏覽之外還是瀏覽,純粹是多媒體式的資料、文件閱讀器(Viewer、Reader)而已,而不是一個軟體執行平台。
由於Netscape Navigator瀏覽器有跨平台的特性,不光是Windows PC,就連OS/2、UNIX、Mac等各式電腦都可以安裝與使用Netscape Navigator,如果瀏覽器不再只是個多媒體網頁閱讀器,透過Java Plug-In而成為一個應用程式執行環境時,那麼使用者就沒有必要非用Windows PC,因為程式可以在任何電腦上使用、執行。
這個推論並無錯誤,但似乎言之過早且過於理想,加上當年此推論被矽谷的知名媒體過譽報導,以致Microsoft大為緊張,深怕Windows的高佔有率優勢一夕盡失,因此推出IE 2.0後不僅可相容執行Java Applet,還能夠執行Microsoft自行提出的ActiveX,ActiveX的運用原理與Java Applet相似,兩者處於完全競爭、抗衡的局面。
後來,Java Applet後續的走勢並不佳,反而是ActiveX逐漸抬頭。初期許多人學習Java Applet只是為了以程式方式讓網頁有更好的動畫效果,並非真的希望用在程式開發,並且Sun與協力軟體業者也遲遲無法推出方便(尤其是所見即所得)的 Java Applet開發工具,以致於學習Java Applet的人多在後期轉投靠Macromedia的Flash。
另一個放棄Java Applet的理由也是由於Microsoft作梗,Microsoft雖取得Sun的授權而能在IE上使用Java Plug-In,以便執行Java Applet,但之後Microsoft自行修改與添加JVM及Java開發工具(Microsoft J++),如此以Microsoft方式開發成的Java Applet只能在IE上執行,失去了在其他非IE瀏覽器上正常執行的能力,Sun因此於1997年一狀告上法庭,數年後Sun勝訴,獲賠10億美金。
被微軟改造過的Java Applet不良影響還不僅如此,其他問題包括執行Java Applet須耗用較多的運算資源、執行過慢、配套函式庫與API不夠齊備等,導致Java Applet愈來愈少人使用,反倒是ActiveX獲得開發者的青睞。
ActiveX可裝不可停,可停不可移
雖然ActiveX打敗了Java Applet,但不表示Java Applet全然遜於ActiveX,至少在安全性上比ActiveX優異。Java Applet的執行環境具有一個「sandbox」的安全機制,倘若Java Applet應用程式試圖自行進行用戶端的I/O存取,就會被sandbox先行阻隔禁止,以策安全,這是ActiveX缺乏之處。(註一)
那麼,企業到底在何種地方使用ActiveX呢?包括一些視訊保全的觀看、軟體版本的線上查核與更新、線上掃毒、網路管理等,不勝枚舉,上述這些還是軟體業者所提供的套裝應用程式,至於企業自身的撰寫開發更是不在話下,若改用IE以外的瀏覽器,等於是放棄上述這些軟體的購置、開發等投資。
因為已投入及慣用ActiveX而無法放棄IE還算事小,更嚴重的是ActiveX為今日常見的資安漏洞,許多前端使用者粗心大意,輕易准允遠端不明的 ActiveX軟體之下載、安裝、執行,導致電腦遭癱瘓、入侵。這樣的苦惱問題一直到Windows XP Service Pack 2出現後才有解,SP2允許使用者在IE中自行操作與指定哪些已安裝的ActiveX軟體(也稱附加元件)當停止執行,以此確保安全性。
不過,這就筆者來看,這個安全似乎相當遲來,1996年提出的ActiveX,一直到2003年的SP2才能防範,甚至用更高標來看,IE截至目前為止都不允許使用者自行將已下載安裝的ActiveX程式進行移除(Uninstall),只能封鎖不予執行,這樣的防範似乎還是太消極。(未完待續)
註一:依然有許多網頁型應用程式是使用Java Applet來運作,如ICQ2Go(ICQ的網頁型即時傳訊)、WinVNC(網頁型遠端遙控軟體)、股票的成交回報跑馬燈等。