微軟宣佈了將 Web Sandbox 加以開放源碼的計畫,該項專案是一套虛擬化技術,用以解決JavaScript 的安全問題。微軟將在 Apache Software License (ASL) 釋出 Web Sandbox 程式碼,而非微軟自己的共享源碼授權。
微軟宣佈將採行常用的開放源碼授權 ASL,釋出其 Web Sandbox 專案的程式碼。此舉反映微軟對以互通性標準為基礎的 Web 技術貢獻,其關注持續增長,此外也展現該公司願意在自家專案上,採用為大眾所接受的開放源碼授權。
出自微軟 Live Labs,名為 Web Sandbox 的此一技術,作用在於將網頁的不同部份,透過虛擬化技術隔離開來,以加強安全性。Web Sandbox 專案的目的是為了解決建構 Web 混搭程式 (mashups) 時,混合第三方之未受信任內容時,帶來的安全風險。隔離未受信任的程式碼,有複雜的技術挑戰。Web Sandbox 並非唯一的此類型研究專案,Google 的 Caja 專案也是類似專案。
Web Sandbox 的運作如小型虛擬機器層,對未受信任的程式碼進行管控。未受信任的程式碼會轉譯為一連串指令,透過以規則為基礎 (rule-based) 的政策系統加以過濾。由於此一轉譯過程可在伺服器端完成,用戶端無須其他 plug-ins 或瀏覽器修改。微軟也提供基於 Silverlight 的參考實作,執行用戶端轉譯作業。
類似的用戶端轉譯功能理論上可以在所有瀏覽器中進行原生實作。微軟目前鼓勵開發者測試 Web Sandbox 並提供潛在的漏洞。
微軟去年 10 月,在其專業開發者大會 (Professional Developers Conference,PDC) 上發表了 Web Sandbox 的社群技術預覽。然而當時 Windows 7 與 Windows Azure 這些更受人矚目的專案,卻吸引了更多人的目光。但這並不代表 Web Sandbox 較不重要。Gartner 的 Web services 副總裁 Ray Valdes 表示,cross-site scripting 攻擊等事件越見普遍,我們需要更多 Web 標準與相互運作性。
微軟的 Peter Galli 在 Port 25 上的網誌中寫到,Web Sandbox 的成立是為了回應現今 Web 平台中的限制,並找出可能的解決方案。其目標是一套開放且互通性的標準,該標準將透過 script 框架等互補技術協助提高互通性,並帶動 Web Sandbox 的廣泛運用。
盡管該項技術乍看下令人注目,其技術可行性仍引來懷疑。正如微軟在 PDC 上對 Web Sandbox 所作的簡報中指出,該技術存在若干缺點。例如,對於效能上的犧牲,以及不支援 JavaScript 的 "eval()" 函式等。
微軟正打算將該專案程式碼以 ASL 釋出。 ASL 是一套許可性 (permissive) 授權,其中不包含 copyleft 規定,並且允許包括開放與私有專案的下游使用,是 OSI 認可且廣泛使用於開放源碼軟體社群的授權,受到許多大型專案的採用,例如 Google 的 Android 平台。
儘管 Web Sandbox 採用 ASL 釋出,但並非隸屬於任何 Apache 基金會 (Apache Foundation) 的專案,也不是與該基金會的協同計畫。此舉意味著微軟在自家專案上選擇採用 ASL,而非該公司已通過 OSI 認可的兩個共享源碼授權。微軟此一決定的動機仍不明,很可能是希望藉此提高此專案在開放源碼軟體社群的接受度。
儘管微軟經常在專利議題與其他爭議上,與多數開放源碼軟體社群相左,然而該公司正逐步接受開放源碼開發模式。作為其結果,在微軟的開放源碼體系上,已經可見小型但逐漸成長的開發者社群。
部份大型開放源碼軟體專案甚至主動出擊,與微軟建立關係。近來一篇 SDTimes 的報導提到,Eclipse 基金會 (Eclipse Foundation) 可能正打算跟微軟合作。該基金會執行董事 Mike Milinkovich 表示,該基金會希望跟微軟有更緊密的合作。他承認儘管有可能的風險,但他相信合作將有利於微軟和 Eclipse 社群。
雖然微軟對於 Linux 平台和部份開放源碼軟體抱持明顯的敵視態度,該公司已經踏出朝向接納開放開發模式的步伐。正如蘋果 (Apple)、Adobe 等私有軟體公司,微軟開始認知到在特定情況下,社群為主的開發模式與不受限的下游重散佈,對於加速穩定與創新技術的發展,會是一大利多條件。
相關網址:
1.微軟希望開放源碼開發者嘗試 Web Sandbox
2.微軟讓 'Web Sandbox' 成了開放源碼