Mashup中的跨域問題答辯課件_第1頁(yè)
Mashup中的跨域問題答辯課件_第2頁(yè)
Mashup中的跨域問題答辯課件_第3頁(yè)
Mashup中的跨域問題答辯課件_第4頁(yè)
Mashup中的跨域問題答辯課件_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Mashup中的跨域問題黃冀渝 Nov-12-2008第1頁(yè),共32頁(yè)。Outline(s)問題背景現(xiàn)有方案方案評(píng)價(jià)新的進(jìn)展啟發(fā)第2頁(yè),共32頁(yè)。問題背景AJAX & Web Service APIBrowser端能力得到擴(kuò)展數(shù)據(jù)和表現(xiàn)層進(jìn)一步分離從而實(shí)現(xiàn)來自不同數(shù)據(jù)源的整合MashupComponents builder 需要調(diào)用外域Service Components compositor 需要構(gòu)件間通訊 HTML 4.01以下及JavaScript 1.5的不支持(續(xù))第3頁(yè),共32頁(yè)。問題背景(續(xù))HTML 4.01 (-) 及 JavaScript 1.1 (-)Same Origi

2、n Policy內(nèi)容:Protocal, Host(, Port)都一致時(shí),算同源:80/index.html:80/secure/login.jsp對(duì)象:Cookie, DOM, Remote Methods(GET/ )SOP的結(jié)果完整性保密性跨域在理論上不可行實(shí)際情況:“全有全無” (All-or-Nothing)SandboxedUnauthorized第4頁(yè),共32頁(yè)?,F(xiàn)有方案兩類跨域問題:?jiǎn)蝹€(gè)構(gòu)件調(diào)用外域的Service 多個(gè)構(gòu)件間的通訊(當(dāng)構(gòu)件為iframe時(shí)) 方案標(biāo)簽(Cross-domain script tags) 插件(Browser plug-ins) 網(wǎng)關(guān)方法(Pr

3、oxy) #-錨記(Fragment identifier messaging) 域名子空間(Sub-domain) 第5頁(yè),共32頁(yè)。標(biāo)簽SOP允許當(dāng)前頁(yè)面讀取遠(yuǎn)程JavaScript與CSS原理:把跨域請(qǐng)求的結(jié)果當(dāng)做JS標(biāo)簽讀入例子:第6頁(yè),共32頁(yè)。插件插件完全繞開了HTML的約束Adobe AIRGoogle GearsJava Applets原理:不同的插件實(shí)現(xiàn)不同,但總之都完全不存在跨域的問題例子:Adobe Flex 的 ActionScript對(duì)第類跨域?qū)Φ陬惪缬虻?頁(yè),共32頁(yè)。網(wǎng)關(guān)方法使用網(wǎng)關(guān)中轉(zhuǎn)所有的AJAX Call和消息傳遞原理:網(wǎng)關(guān)的server和當(dāng)前頁(yè)面是同源的服

4、務(wù)器端語(yǔ)言不存在跨域限制例子:修改所有AJAX CALL的url為網(wǎng)關(guān)的url當(dāng)需要進(jìn)行消息傳遞時(shí)也通過約定好的格式進(jìn)行$.ajax( url: , type: “GET”, success: function()$.ajax( url: localhost/gateway?url=, type: “GET”, success: function()第8頁(yè),共32頁(yè)。#-錨記URL:/exp.html#anchor1原理:跨域框架的window.location可寫不可讀把消息寫在原本用于定位的錨記中, 窗口輪詢之例子:第9頁(yè),共32頁(yè)。域名子空間Window.location(域名)可寫不可

5、讀可以寫成任意URL也允許縮小域空間:foo.abc.bar abc.bar例子第10頁(yè),共32頁(yè)。方案評(píng)價(jià): 標(biāo)簽優(yōu)點(diǎn)實(shí)現(xiàn)容易跨瀏覽器兼容缺點(diǎn)極高的安全風(fēng)險(xiǎn)Cookie完全可見無法檢測(cè)風(fēng)險(xiǎn):插入標(biāo)簽后代碼立刻運(yùn)行iGoogle把風(fēng)險(xiǎn)拋給用戶: “inline modulesClick OK if you trust it”只能訪問跨域頁(yè)面和RESTful Service(Firefox除外,內(nèi)置了方法訪問SOAP)無法異步,不是AJAX應(yīng)用評(píng)價(jià)目前是主流的跨域方法DOJO: dojo.io.script.get()jQuery: $().ajax()非官方協(xié)議 JSONPJSONP=CALL

6、BACK ( JSON DATA ) FUNC1()第11頁(yè),共32頁(yè)。方案評(píng)價(jià):插件優(yōu)點(diǎn)完全解決跨域問題缺點(diǎn)用戶不愿安裝:隱私,兼容性等等原因需要重構(gòu)已有的應(yīng)用市場(chǎng)競(jìng)爭(zhēng)導(dǎo)致的前景不明朗Adobe AIRMicrosoft SliverlightGoogle Gears(Java Applets)第12頁(yè),共32頁(yè)。方案評(píng)價(jià):網(wǎng)關(guān)方法(Proxy)優(yōu)點(diǎn)繞開了跨域限制可以實(shí)現(xiàn)一個(gè)消息傳遞的框架缺點(diǎn)請(qǐng)求時(shí)間加長(zhǎng)Latency服務(wù)器負(fù)荷增加Workload帶寬瓶頸Bandwidth安全隱患(攻擊者匿名)Security評(píng)價(jià)是商業(yè)Mashup網(wǎng)站常采用的方法Yahoo Pipes第13頁(yè),共32頁(yè)。方

7、案評(píng)價(jià):#錨記優(yōu)點(diǎn)簡(jiǎn)單易行體驗(yàn)良好:改變錨記不會(huì)刷新頁(yè)面缺點(diǎn)錨記長(zhǎng)度有限(IE的URL上限長(zhǎng)度約4096K)需要框架頁(yè)面輪詢地址欄,穩(wěn)定性不高不允許用戶按下“后退”沒有消息機(jī)制的框架可言第14頁(yè),共32頁(yè)。方案評(píng)價(jià):域名子空間優(yōu)點(diǎn)可以建立消息通訊的框架缺點(diǎn)底層實(shí)現(xiàn)仍然依賴于標(biāo)簽對(duì)于多個(gè)框架時(shí)的消息通訊支持不佳購(gòu)買特定域名所帶來的成本問題第15頁(yè),共32頁(yè)。新的進(jìn)展瀏覽器IE 8.0對(duì)跨域的支持Opera允許對(duì)指定消息來源的DOM節(jié)點(diǎn)訪問HTML 5.0標(biāo)簽孤立所有module構(gòu)件JSONRequest要求瀏覽器實(shí)現(xiàn)新對(duì)象,補(bǔ)充而非替代XmlHttpRequest免除同源策略只接受JSON文本,

8、保證不執(zhí)行惡意腳本Cross-browser.xmlFlash 對(duì)象在服務(wù)器上查找 cross-browser.xml 文件,然后才嘗試訪問其特定的 URL。 此文件指定了哪個(gè)站點(diǎn)可承載訪問該服務(wù)器上所提供服務(wù)的應(yīng)用程序。很多 Web 服務(wù)提供商已經(jīng)實(shí)現(xiàn)了此文件。第16頁(yè),共32頁(yè)。啟發(fā)ixumi的通訊問題、數(shù)據(jù)匹配問題都需要基于已解決跨域問題,demo使用了網(wǎng)關(guān)模式 vs. 網(wǎng)關(guān) vs. 插件基本不適用于SOAP Service(Firefox除外)網(wǎng)關(guān)方法更適合商業(yè)應(yīng)用轉(zhuǎn)向Flex,一勞永逸第17頁(yè),共32頁(yè)。各種跨域通訊框架綜述黃冀渝第18頁(yè),共32頁(yè)。各種跨域通訊框架綜述跨域/通訊相關(guān)

9、(Mashup中構(gòu)件間的通訊-):SubspaceSecure Cross-Domain Communication for Web MashupsSmashSecure Component Model for Cross-Domain Mashups on Unmodified BrowsersMashupOSProtection and Communication Abstractions for Web Browsers in MashupOS第19頁(yè),共32頁(yè)??缬?通訊 Subspace綜述建立Subspace的步驟:Pass JavaScript communication obj

10、ect使得每個(gè)子框架可以和Top框架通訊,但它們之間則不可見Load untrusted content每個(gè)子框架通過標(biāo)簽讀入跨域內(nèi)容結(jié)果:1 每個(gè)子框架完全暴露給未知的跨域內(nèi)容-Unsafe2 Top框架不會(huì)受波及,其它子框架也仍然隔離-SandBoxed1 + 2 產(chǎn)生了介于二者之間的安全等級(jí)第20頁(yè),共32頁(yè)。Subspace-實(shí)現(xiàn)Subspace使用了閉包的概念構(gòu)造JavaScript通訊對(duì)象,但不同瀏覽器對(duì)閉包的定義完全不同,因此Subspace對(duì)此采取了不同的實(shí)現(xiàn):TMU與TUA第21頁(yè),共32頁(yè)。Subspace-評(píng)價(jià)更多安全級(jí)別種類“全有全無” “全有全無” 管制成本: 必須購(gòu)

11、買對(duì)應(yīng)的子域名性能: Mashup的構(gòu)件越多所需框架越多例子:命令改變父框架字體顏色安全: DOS(Denial of Service)攻擊可用性:對(duì)不同的瀏覽器沒有統(tǒng)一的解決方案第22頁(yè),共32頁(yè)??缬?通訊 Smash綜述前提Mashup的構(gòu)件都是iframe 各自的DOM完全隔離各個(gè)構(gòu)件來自不同的域名 可直接讀入構(gòu)件內(nèi)容目的:建立起框架間的通訊協(xié)議解決下列安全問題通訊時(shí)消息的保密性通訊時(shí)消息的完整性反-框架釣魚(Anti frame-fishing)第23頁(yè),共32頁(yè)。Smash技術(shù)實(shí)現(xiàn)通訊協(xié)議總線模式異步:publish/subscribe體系結(jié)構(gòu)使用iframe載入不同域名的子構(gòu)件每

12、個(gè)構(gòu)件包含一個(gè)子框架tunnel,該tunnel與mashup應(yīng)用同源Mashup應(yīng)用可直接與tunnel通訊,因?yàn)樗鼈兺礃?gòu)件通過輪詢#錨點(diǎn)與tunnel通訊第24頁(yè),共32頁(yè)。Smash技術(shù)實(shí)現(xiàn)通訊協(xié)議細(xì)節(jié)6層通訊結(jié)構(gòu)Mashup API底層的通訊目前使用#錨記實(shí)現(xiàn)反-框架釣魚Load:為構(gòu)件設(shè)置timeoutRedirect:Mashup監(jiān)聽構(gòu)件的onunload消息第25頁(yè),共32頁(yè)。Smash評(píng)價(jià)實(shí)用: 完整的消息機(jī)制和通訊框架靈活: 底層通訊機(jī)制可以替換復(fù)雜:構(gòu)造過程較復(fù)雜,需實(shí)現(xiàn)一定API性能:底層實(shí)現(xiàn)是輪詢而非消息第26頁(yè),共32頁(yè)。跨域/通訊 Protection in Ma

13、shupOS跨域問題出現(xiàn)的根源信任模型中缺失的一環(huán)OS中進(jìn)程樹的安全級(jí)DNS層級(jí)即代表安全層級(jí)在構(gòu)件層面討論信用等級(jí)的分類和構(gòu)件的”身份”增加兩種信任等級(jí)Row 1Mashup和孤立的構(gòu)件間通過全局對(duì)象CommRequest通訊例子:Mashup應(yīng)用和構(gòu)件互相不信任,但可以通過規(guī)范的格式交換數(shù)據(jù)Row 3Mashup只能訪問構(gòu)件中的部分內(nèi)容例子:跨域構(gòu)件中同時(shí)包含隱私和公開數(shù)據(jù)(Bad Practice:先驗(yàn)證Mashup應(yīng)用session再給予完全權(quán)限)Row 4Mashup可以訪問沙盒構(gòu)件,沙盒構(gòu)件不能訪問外面的內(nèi)容例子:Mashup應(yīng)用訪問未驗(yàn)證安全的跨域構(gòu)件第27頁(yè),共32頁(yè)。Prot

14、ection in MashupOS 例子場(chǎng)景描述Mashup兩個(gè)構(gòu)件,實(shí)現(xiàn)在地圖上標(biāo)記照片拍攝地點(diǎn)GoogleMap構(gòu)件Flickr構(gòu)件安全約束數(shù)據(jù)流向是嚴(yán)格單向的,F(xiàn)lickrMashupGMapMashup需要得到Flickr的照片地理的信息Mashup需要能夠傳遞信息給GMapRow 1Row 4Row 1Row 4第28頁(yè),共32頁(yè)。Protection in MashupOS 實(shí)現(xiàn)實(shí)現(xiàn)方式擴(kuò)展IE的MIME以映射自己的標(biāo)簽為已知的標(biāo)簽擴(kuò)展IE的Script引擎以創(chuàng)建全局通訊對(duì)象映射自定義的標(biāo)簽創(chuàng)建CommRequest全局通訊對(duì)象第29頁(yè),共32頁(yè)。謝謝Any Comment?第30頁(yè),共32頁(yè)。論文 A Domain-Specific Language for Web APIs & Service Mashups背景:不同的服務(wù)類型需要不同的Adaptor進(jìn)行通訊目的:使用統(tǒng)一的接口訪問多種服務(wù)類型為服務(wù)的數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論