受限计算机环境中的交叉源通信制造技术

技术编号:21207966 阅读:41 留言:0更新日期:2019-05-25 03:45
本说明书公开了用于在计算系统上的第一执行上下文和计算系统上的第二执行上下文之间传送数据的技术。第一执行上下文可以执行来自第一源的内容,第二执行上下文可以执行来自与第一源不同的第二源的内容,并且作为计算系统实施的同源策略的结果,第一执行上下文和第二执行上下文中的每一个可以被限制访问另一个的数据。方法可以包括在第一执行上下文和第二执行上下文之间建立双向通信信道。

Cross-Source Communication in Restricted Computer Environment

This specification discloses techniques for transferring data between the first execution context on a computing system and the second execution context on a computing system. The first execution context can execute content from the first source, the second execution context can execute content from a second source different from the first source, and as a result of the homology policy implemented by the computing system, each of the first execution context and the second execution context can be restricted to access another data. The method may include establishing a bidirectional communication channel between the first execution context and the second execution context.

【技术实现步骤摘要】
【国外来华专利技术】受限计算机环境中的交叉源通信
本文总体上涉及用于在计算系统上的分离的执行上下文之间(诸如web浏览器中的不同窗口之间)通信的技术。
技术介绍
服务器和计算设备等的硬件和软件能力的进步导致了越来越复杂的网页、应用界面和其他电子文档。例如,一些网页整合了来自多个源的内容以减少用户反复地导航到其他网站并返回原始网页的需要。举例来说,网页可以包括为网页提供主要内容的顶级文档和在顶级文档中嵌入其他内容(诸如来自地图服务器或导航服务器的内容)的一个或多个内嵌框架(iFrame)。在一些情况下,嵌入的文档从与其顶级文档从中获得的域不同的域获得,因而被称为具有不同的源。来自不同的源的文档可能对计算系统造成威胁。例如,来自第一源的文档可能携带被设计为危害来自第二源的文档(例如,通过在其他文档中注入进一步的恶意代码,通过检测其他文档的文档对象模型(DOM)或对其进行未授权的改变,从其他文档爬取个人信息,或监视与其他文档的用户交互)的恶意程序。因此,web浏览器和公共地执行来自不同源的文档的其他应用已经实施同源策略,其限制许多形式的交叉源文档交互。例如,浏览器可以阻止来自第一域的显示在第一窗口中的网页访问本文档来自技高网...

【技术保护点】
1.一种用于在计算系统上的第一执行上下文和所述计算系统上的第二执行上下文之间传送数据的计算机实现的方法,其中,所述第一执行上下文执行来自第一源的内容,其中,所述第二执行上下文执行来自与所述第一源不同的第二源的内容,以及其中,作为所述计算系统实施的同源策略的结果,所述第一执行上下文和所述第二执行上下文中的每一个被限制访问另一个的数据,所述方法包括:在所述第一执行上下文和所述第二执行上下文之间建立双向通信信道,包括:在所述第一执行上下文中接收从所述第二执行上下文发送的初始发现消息;在所述第一执行上下文中并且基于从所述第二执行上下文发送的所述初始发现消息确定所述第二执行上下文的标识符;使用所述第二执...

【技术特征摘要】
【国外来华专利技术】2017.06.16 US 15/624,9211.一种用于在计算系统上的第一执行上下文和所述计算系统上的第二执行上下文之间传送数据的计算机实现的方法,其中,所述第一执行上下文执行来自第一源的内容,其中,所述第二执行上下文执行来自与所述第一源不同的第二源的内容,以及其中,作为所述计算系统实施的同源策略的结果,所述第一执行上下文和所述第二执行上下文中的每一个被限制访问另一个的数据,所述方法包括:在所述第一执行上下文和所述第二执行上下文之间建立双向通信信道,包括:在所述第一执行上下文中接收从所述第二执行上下文发送的初始发现消息;在所述第一执行上下文中并且基于从所述第二执行上下文发送的所述初始发现消息确定所述第二执行上下文的标识符;使用所述第二执行上下文的所述标识符建立所述双向通信信道的第一单向子信道,所述第一单向子信道被配置为将消息从所述第一执行上下文携带到所述第二执行上下文;在所述第二执行上下文中接收通过所述第一单向子信道从所述第一执行上下文发送的连接广播消息;在所述第二执行上下文中并且基于通过所述第一单向子信道从所述第一执行上下文发送的连接广播消息确定所述第一执行上下文的标识符;以及使用所述第一执行上下文的所述标识符建立所述双向通信信道的第二单向子信道,所述第二单向子信道被配置为将消息从所述第二执行上下文携带到所述第一执行上下文;以及通过所述双向通信信道在所述第一执行上下文和所述第二执行上下文之间传送消息。2.根据权利要求1所述的计算机实现的方法,其中,按照同源策略,所述计算系统响应于识别所述第一源和所述第二源的传输协议、地址或端口号中的至少一个彼此不同来将所述第二源分类为与所述第一源不同。3.根据权利要求1或2所述的计算机实现的方法,其中,所述第一执行上下文包括被配置为呈现来自所述第一源的内容的第一窗口对象,其中,所述第二执行上下文包括被配置为呈现来自所述第二源的内容的第二窗口对象。4.根据权利要求3所述的计算机实现的方法,其中:呈现在所述第一窗口对象中的内容包括由在与所述第一源关联的第一域处的一个或多个服务器托管的第一网页;呈现在所述第二窗口对象中的内容包括由在与所述第二源关联的第二域处的一个或多个服务器托管的第二网页;以及所述第二窗口对象是嵌入在所述第一网页中的内嵌框架(iFrame)。5.根据权利要求1至4中任一项所述的计算机实现的方法,还包括:用所述计算系统的web浏览应用生成所述第一执行上下文和所述第二执行上下文,其中,所述第一单向子信道被配置为使用所述web浏览应用的postMessage应用编程接口(API)来将消息从所述第一执行上下文携带到所述第二执行上下文,其中,所述第二单向子信道被配置为使用所述web浏览应用的postMessageAPI来将消息从所述第二执行上下文携带到所述第一执行上下文。6.根据权利要求1至5中任一项所述的计算机实现的方法,其中:在所述计算系统上的执行上下文的层次结构中,所述第二执行上下文是所述第一执行上下文的后代,以及在所述第一执行上下文中并且基于从所述第二执行上下文发送的所述初始发现消息确定所述第二执行上下文的所述标识符包括:访问所述初始发现消息的源标识符字段的值。7.根据权利要求1至6中任一项所述的计算机实现的方法,还包括:在建立所述第一单向子信道和所述第二单向子信道之后验证所述双向通信信道,包括:将第一信道连接消息从所述第二执行上下文发送到所述第一执行上下文;在所述第一执行上下文中接收从所述第二执行上下文发送的所述第一信道连接消息;响应于接收所述第一信道连接消息,在所述第一执行上下文处将所述双向通信信道标记为处于连接状态;将第二信道连接消息从所述第一执行上下文发送到所述第二执行上下文;在所述第二执行上下文中接收从所述第一执行上下文发送的所述第二信道连接消息;以及响应于接收所述第二信道连接消息,在所述第二执行上下文处将所述双向通信信道标记为处于连接状态。8.根据权利要求7所述的计算机实现的方法,其中,所述第一执行上下文中的一个或多个服务被配置为响应于识别所述第一单向子信道处于连接状态而使用所述双向通信信道将消息从所述第一执行上下文携带到所述第二执行上下文,其中,所述第一执行上下文中的所述一个或多个服务被配置为响应于识别所述第一单向子信道处于未连接状态而执行替代动作而不是使用所述双向通信信道将消息从所述第一执行上下文携带到所述第二执行上下文。9.根据权利要求1至8中任一项所述的计算机实现的方法,还包括:通过检查在所述计算系统上的执行上下文的层次结构中,所述第二执行上下文是否是所述第一执行上下文的后代,在所述第一执行上下文中确定所述第一执行上下文是否是来自所述第二执行上下文的初始发现消息的目标;以及响应于识别所述第二执行上下文是所述第一执行上下文的后代:(i)确定所述第一执行上下文是来自所述第二执行上下文的所述初始发现消息的目标并且继续建立所述第一单向子信道,以及(ii)选择以在所述第一执行上下文和所述第二执行上下文之间建立所述第一单向子信道。10.根据权利要求1至9中任一项所述的计算机实现的方法,还包括:在所述第一执行上下文中接收从执行来自除所述第一源之外的源的内容的第三执行上下文发送的第二初始发现消息,其中,作为所述计算系统实施的同源策略的结果,所述第一执行上下文和所述第三执行上下文中的每一个被限制访问另一个的数据;通过检查在所述计算系统上的执行上下文的层次结构中,所述第三执行上下文是否是所述第一执行上下文的后代,在所述第一执行上下文中确定所述第一执行上下文是否是来自所述第三执行上下文的第二初始发现消息的目标;以及响应于识别所述第三执行上下文不是所述第一执行上下文的后代,丢弃所述第二初始发现消息以不在所述第一执行上下文和所述第三执行上下文之间建立通信信道。11.根据权利要求1至10中任一项所述的计算机实现的方法,还包括:在所述第一执行上下文中识别来自所述第二执行上下文的初始发现消息包含第一令牌,所述第一令牌指示所述初始发现消息用于发起所述第一执行上下文和所述第二执行上下文的第一服务之间的第一信道的建立;在所述第一执行上下文中接收从所述第二执行上下文发送的第二初始发现消息;在所述第一执行上下文中识别来自所述第二执行上下文的第二初始发现消息包含第二令牌,所述第二令牌指示所述第二初始发...

【专利技术属性】
技术研发人员:MS弗里斯比
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1