Web瀏覽器設(shè)計之初并未考慮進(jìn)mashup應(yīng)用,‘這個瘡疤自它誕生之日就有了’[David Boloker,OpenAjax聯(lián)盟創(chuàng)始人之一,IBM新興網(wǎng)絡(luò)技術(shù)(Emerging Internet Technologies)的CTO]說到。瀏覽器包含一種叫同源策略的安全機(jī)制,能夠防止一個站點的惡意代碼從另一站點上抓取諸如存儲的證書之類的數(shù)據(jù)。同源策略限制了來自一個域的站點向另一個域請求數(shù)據(jù)。
來自微軟研究院系統(tǒng)與網(wǎng)絡(luò)組的Helen Wang進(jìn)一步指出了同源策略的失敗之處:
同源策略的失敗在于它迫使‘現(xiàn)在的網(wǎng)絡(luò)應(yīng)用,要么選擇犧牲掉安全,要么選擇犧牲掉功能。’她提到很多很棒的功能(比如mashup)來自于使用各個來源的工具。問題是當(dāng)站點的創(chuàng)建者在自己的站點嵌入第三方代碼時,同源策略不再提供任何的保護(hù),因此這些嵌入代碼極有可能獲得對存儲于該站點的信息的訪問權(quán)限
一些提出的解決方案包括:在輔以額外控制的同時,放寬同源策略的限制。Wang建議以“沙盒”的形式在瀏覽器內(nèi)對外部代碼加以控制,避免(這些代碼)獲得過多的權(quán)限。也有人推薦用外部的、第三方工具來確保應(yīng)用程序通信安全,這種方式不必改動現(xiàn)有的瀏覽器。一個這樣的例子是IBM最近宣布的sMash,一個“安全的mashup”應(yīng)用:
sMash致力于解決瀏覽器mashup安全問題中的一個關(guān)鍵部分,使來自于異源的數(shù)據(jù)和代碼相互分離,與此同時,通過一個安全的通信通道充許數(shù)據(jù)在受控狀態(tài)下得以共享
業(yè)界的大多數(shù)人都試圖表明mashup安全仍是一個懸而未決的問題,隨著Web2.0應(yīng)用的普及,這一問題將會得到越來越多的關(guān)注。盡管mashup并不是應(yīng)用的全部,但BEA一直以來都把重點放在為組織創(chuàng)建服務(wù)的開發(fā)者身上。Bob Rhubart在一家公司討論“作為SOA項目整體一部分的安全性”時提到,安全是任何SOA全局治理的基石:
要說明安全之于SOA治理的重要性,將它比作水之于魚的生存也不為過。這是顯而易見的。就像SOA治理中的其他環(huán)節(jié)一樣,安全問題也是一個多方面的問題。但它的本質(zhì)歸根結(jié)底在于回答一個簡單的問題:誰在使用你的東西?部署于SOA中的每一個服務(wù)都代表著一筆重大的投資,同時也代表著潛在的重大回報。當(dāng)然了,SOA治理的一個根本目的,就是保證每個服務(wù)的使用都能產(chǎn)生所預(yù)期的回報。實現(xiàn)這個回報的關(guān)鍵,一是控制好誰能訪問這些服務(wù),二是控制好那些有權(quán)使用的人到底是怎樣使用服務(wù)的。
Rhubart援引了David Garrison和BEA的安全服務(wù)框架作為如何實現(xiàn)這一目標(biāo)的例子。Garrison指出,BEA在他們的產(chǎn)品中使用了一個安全服務(wù)框架模型,并討論了如何用AquaLogic企業(yè)安全套件(ALES)來設(shè)計這樣一種框架的基本理念。Garrison為一個安全服務(wù)框架標(biāo)定出了5個主要的服務(wù)/提供者,并闡述了它們各自的職責(zé)。它們是:
- 認(rèn)證
- 角色映射
- 授權(quán)
- 證書映射
- 審計
不出意料,所列的項目與傳統(tǒng)的應(yīng)用級安全框架相異甚少。