Mashup中的跨域问题答辩课件_第1页
Mashup中的跨域问题答辩课件_第2页
Mashup中的跨域问题答辩课件_第3页
Mashup中的跨域问题答辩课件_第4页
Mashup中的跨域问题答辩课件_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Mashup中的跨域问题黄冀渝 Nov-12-2008第1页,共32页。Outline(s)问题背景现有方案方案评价新的进展启发第2页,共32页。问题背景AJAX & Web Service APIBrowser端能力得到扩展数据和表现层进一步分离从而实现来自不同数据源的整合MashupComponents builder 需要调用外域Service Components compositor 需要构件间通讯 HTML 4.01以下及JavaScript 1.5的不支持(续)第3页,共32页。问题背景(续)HTML 4.01 (-) 及 JavaScript 1.1 (-)Same Origi

2、n Policy内容:Protocal, Host(, Port)都一致时,算同源:80/index.html:80/secure/login.jsp对象:Cookie, DOM, Remote Methods(GET/ )SOP的结果完整性保密性跨域在理论上不可行实际情况:“全有全无” (All-or-Nothing)SandboxedUnauthorized第4页,共32页。现有方案两类跨域问题:单个构件调用外域的Service 多个构件间的通讯(当构件为iframe时) 方案标签(Cross-domain script tags) 插件(Browser plug-ins) 网关方法(Pr

3、oxy) #-锚记(Fragment identifier messaging) 域名子空间(Sub-domain) 第5页,共32页。标签SOP允许当前页面读取远程JavaScript与CSS原理:把跨域请求的结果当做JS标签读入例子:第6页,共32页。插件插件完全绕开了HTML的约束Adobe AIRGoogle GearsJava Applets原理:不同的插件实现不同,但总之都完全不存在跨域的问题例子:Adobe Flex 的 ActionScript对第类跨域对第类跨域第7页,共32页。网关方法使用网关中转所有的AJAX Call和消息传递原理:网关的server和当前页面是同源的服

4、务器端语言不存在跨域限制例子:修改所有AJAX CALL的url为网关的url当需要进行消息传递时也通过约定好的格式进行$.ajax( url: , type: “GET”, success: function()$.ajax( url: localhost/gateway?url=, type: “GET”, success: function()第8页,共32页。#-锚记URL:/exp.html#anchor1原理:跨域框架的window.location可写不可读把消息写在原本用于定位的锚记中, 窗口轮询之例子:第9页,共32页。域名子空间Window.location(域名)可写不可

5、读可以写成任意URL也允许缩小域空间:foo.abc.bar abc.bar例子第10页,共32页。方案评价: 标签优点实现容易跨浏览器兼容缺点极高的安全风险Cookie完全可见无法检测风险:插入标签后代码立刻运行iGoogle把风险抛给用户: “inline modulesClick OK if you trust it”只能访问跨域页面和RESTful Service(Firefox除外,内置了方法访问SOAP)无法异步,不是AJAX应用评价目前是主流的跨域方法DOJO: dojo.io.script.get()jQuery: $().ajax()非官方协议 JSONPJSONP=CALL

6、BACK ( JSON DATA ) FUNC1()第11页,共32页。方案评价:插件优点完全解决跨域问题缺点用户不愿安装:隐私,兼容性等等原因需要重构已有的应用市场竞争导致的前景不明朗Adobe AIRMicrosoft SliverlightGoogle Gears(Java Applets)第12页,共32页。方案评价:网关方法(Proxy)优点绕开了跨域限制可以实现一个消息传递的框架缺点请求时间加长Latency服务器负荷增加Workload带宽瓶颈Bandwidth安全隐患(攻击者匿名)Security评价是商业Mashup网站常采用的方法Yahoo Pipes第13页,共32页。方

7、案评价:#锚记优点简单易行体验良好:改变锚记不会刷新页面缺点锚记长度有限(IE的URL上限长度约4096K)需要框架页面轮询地址栏,稳定性不高不允许用户按下“后退”没有消息机制的框架可言第14页,共32页。方案评价:域名子空间优点可以建立消息通讯的框架缺点底层实现仍然依赖于标签对于多个框架时的消息通讯支持不佳购买特定域名所带来的成本问题第15页,共32页。新的进展浏览器IE 8.0对跨域的支持Opera允许对指定消息来源的DOM节点访问HTML 5.0标签孤立所有module构件JSONRequest要求浏览器实现新对象,补充而非替代XmlHttpRequest免除同源策略只接受JSON文本,

8、保证不执行恶意脚本Cross-browser.xmlFlash 对象在服务器上查找 cross-browser.xml 文件,然后才尝试访问其特定的 URL。 此文件指定了哪个站点可承载访问该服务器上所提供服务的应用程序。很多 Web 服务提供商已经实现了此文件。第16页,共32页。启发ixumi的通讯问题、数据匹配问题都需要基于已解决跨域问题,demo使用了网关模式 vs. 网关 vs. 插件基本不适用于SOAP Service(Firefox除外)网关方法更适合商业应用转向Flex,一劳永逸第17页,共32页。各种跨域通讯框架综述黄冀渝第18页,共32页。各种跨域通讯框架综述跨域/通讯相关

9、(Mashup中构件间的通讯-):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页,共32页。跨域/通讯 Subspace综述建立Subspace的步骤:Pass JavaScript communication obj

10、ect使得每个子框架可以和Top框架通讯,但它们之间则不可见Load untrusted content每个子框架通过标签读入跨域内容结果:1 每个子框架完全暴露给未知的跨域内容-Unsafe2 Top框架不会受波及,其它子框架也仍然隔离-SandBoxed1 + 2 产生了介于二者之间的安全等级第20页,共32页。Subspace-实现Subspace使用了闭包的概念构造JavaScript通讯对象,但不同浏览器对闭包的定义完全不同,因此Subspace对此采取了不同的实现:TMU与TUA第21页,共32页。Subspace-评价更多安全级别种类“全有全无” “全有全无” 管制成本: 必须购

11、买对应的子域名性能: Mashup的构件越多所需框架越多例子:命令改变父框架字体颜色安全: DOS(Denial of Service)攻击可用性:对不同的浏览器没有统一的解决方案第22页,共32页。跨域/通讯 Smash综述前提Mashup的构件都是iframe 各自的DOM完全隔离各个构件来自不同的域名 可直接读入构件内容目的:建立起框架间的通讯协议解决下列安全问题通讯时消息的保密性通讯时消息的完整性反-框架钓鱼(Anti frame-fishing)第23页,共32页。Smash技术实现通讯协议总线模式异步:publish/subscribe体系结构使用iframe载入不同域名的子构件每

12、个构件包含一个子框架tunnel,该tunnel与mashup应用同源Mashup应用可直接与tunnel通讯,因为它们同源构件通过轮询#锚点与tunnel通讯第24页,共32页。Smash技术实现通讯协议细节6层通讯结构Mashup API底层的通讯目前使用#锚记实现反-框架钓鱼Load:为构件设置timeoutRedirect:Mashup监听构件的onunload消息第25页,共32页。Smash评价实用: 完整的消息机制和通讯框架灵活: 底层通讯机制可以替换复杂:构造过程较复杂,需实现一定API性能:底层实现是轮询而非消息第26页,共32页。跨域/通讯 Protection in Ma

13、shupOS跨域问题出现的根源信任模型中缺失的一环OS中进程树的安全级DNS层级即代表安全层级在构件层面讨论信用等级的分类和构件的”身份”增加两种信任等级Row 1Mashup和孤立的构件间通过全局对象CommRequest通讯例子:Mashup应用和构件互相不信任,但可以通过规范的格式交换数据Row 3Mashup只能访问构件中的部分内容例子:跨域构件中同时包含隐私和公开数据(Bad Practice:先验证Mashup应用session再给予完全权限)Row 4Mashup可以访问沙盒构件,沙盒构件不能访问外面的内容例子:Mashup应用访问未验证安全的跨域构件第27页,共32页。Prot

14、ection in MashupOS 例子场景描述Mashup两个构件,实现在地图上标记照片拍摄地点GoogleMap构件Flickr构件安全约束数据流向是严格单向的,FlickrMashupGMapMashup需要得到Flickr的照片地理的信息Mashup需要能够传递信息给GMapRow 1Row 4Row 1Row 4第28页,共32页。Protection in MashupOS 实现实现方式扩展IE的MIME以映射自己的标签为已知的标签扩展IE的Script引擎以创建全局通讯对象映射自定义的标签创建CommRequest全局通讯对象第29页,共32页。谢谢Any Comment?第30页,共32页。论文 A Domain-Specific Language for Web APIs & Service Mashups背景:不同的服务类型需要不同的Adaptor进行通讯目的:使用统一的接口访问多种服务类型为服务的数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论