用于web内容和web服务的安全网络内插入的方法和系统的制作方法_3

文档序号:8269412阅读:来源:国知局
被设置,以保持在要么对网页边界要么相对于屏幕边界的恒定位置中。
[0048]图图示示范性的内联(in-line)配置,其中与网页的原始内容510内联地添加一个或多个iframe 522。添加的iframe 522可以替换原始内容510的一些部分。例如,当网页承载不能由浏览器显示的富互联网应用(RIA)内容(例如Adobe Flash或MicrosoftSilverlight)时,嵌入在网页的原始内容510中的这样的内容的一些或全部出现可以用iframe 522内联地替换,所述iframe 522包含由浏览器支持的并且可以显示的基于标准的内容。
[0049]托管脚本和iframe内容
在一些实施例中,插入数据具有两个或更多远程脚本元素332,并且在相同的远程服务器上托管(存储)对应于所有或者至少两个或更多远程脚本元素332的脚本文件。托管脚本文件的远程服务器可以是指明的服务器,诸如插入数据服务器116。作为示例,在插入数据服务器116上托管两个JavaScript文件'header, js”和“footer, js”,并且插入数据服务器116的IP地址是1.2.3.4。除了其它事物以外,插入数据330于是可以包含下列远程脚本元素332:
〈script src=,,http://1.2.3.4/header, js,,></script)
〈script src=,,http://1.2.3.4/footer, js,,></script)
出于许多原因,在相同的服务器上托管脚本可以是有利的,许多原因之一与同源策略有关。同源策略是web安全性概念,其准许源自相同的服务器(托管在相同的服务器上)的文档或脚本访问彼此的方法和属性而没有任何具体的限制,但防止访问跨源自不同服务器的页面的大多数方法和属性。因此,在以上示例中的脚本header, js和footer, js将能够访问彼此的方法和属性,因为它们源自相同的服务器一一插入数据服务器116。
[0050]在一些实施例中,由脚本(例如经由iframe)添加到网页的不同远程内容也源自相同的服务器。也就是说,如果包含若干远程网页的若干iframe被添加到当前网页,则根据一些实施例,可以在相同的服务器上托管若干远程网页。此外,在一些实施例中,在托管脚本本身的相同的服务器上托管远程内容。
[0051]根据以上讨论的示例,图6图示示范性的插入数据服务器116。在示例中,插入数据服务器116具有1.2.3.4的IP地址,并且托管至少两个脚本文件(header, js和footer.js)和至少两个网页(header, html和footer, html )。脚本header, js添加包含网页“header, html” 的 i frame,并且脚本 footer, js 添加包含网页 “footer, html” 的 i frame ο脚本在网页的顶部和底部放置iframe,其中通过相应地设置iframe的“顶部”属性而插入iframe (例如修改的网页320)。
[0052]在相同的服务器上托管由此插入的脚本和网页实现若干优点。例如,在这种情况下同源策略允许脚本彼此通信,允许插入的网页彼此通信(例如使用W3C HTML5 WebMessaging (消息传递)API),并允许每个脚本与每个插入的网页通信。同时,因为原始网页通常不被托管在与添加的脚本和插入的网页相同的服务器上,原始网页的观感或行为不能由添加的脚本或插入的网页所操纵,并且反之亦然。这给原始和插入的网页二者提供安全性和所有权保护。
[0053]为了附加的安全性,在一些实施例中,插入数据服务器116的真实地址(域名或者IP地址)不出现在修改的网页上。代替地,当引用在插入数据服务器116上托管的任何元素时,数据插入模块206可以使用预定义的虚拟(例如不存在的)域名。此外,如果由脚本插入的远程内容也托管在插入数据服务器116上,如图6中的示例中那样,脚本还可以通过使用虚拟域名来引用远程内容。例如,如果预定义的虚拟域名被选为“WWW.virtual-domain.com”,则远程脚本对象334随着它们出现在插入数据330中可以看上去像这样:
〈script src=,,http://www.virtual-domain.com/header, js,,>〈/script>
〈script src=,,http://www.virtual-domain.com/footer, js,,>〈/script>
并且脚本内的指令可以看上去分别像这样:
new_iframe.setAttribute (〃src〃,“http://www.virtual-domain.com/header,html”);
new_iframe.setAttribute ( 〃src〃,“http://www.virtual-domain.com/footer,html”);
可以由请求监视器202解析(替换)虚拟域名。请求监视器202接收和分析来自互联网访问应用104的请求数据,诸如HTTP请求。在一些实施例中,请求监视器202可以在请求数据内检测包括预定义的虚拟域名的请求。在检测到预定义的虚拟域名之后,通过用诸如插入数据服务器116之类的预定义的服务器的实域名或IP地址替换预定义的虚拟域名的任何出现,请求监视器202可以修改请求数据。网关108然后将修改的请求数据发送到网络118,网络118根据替换的域名来引导请求。虚拟域名的使用还提供以下灵活性:在不必改变脚本的URI的情况下将脚本重定位到不同的插入数据服务器或服务器池。
[0054]在一些实施例中,由数据插入模块206插入的远程内容(要么直接地要么经由脚本,如以上所讨论)可以包括Web服务调用。Web服务是允许在不同服务器上运行的应用彼此无缝通信的软件技术。例如,在订户设备102上由互联网访问应用104执行的网页可以使用Web服务,以将数据发送到在远程服务器上运行的应用,并且可以从该应用接收数据。可以通过使用异步JavaScript和XML (“AJAX”)和通过使用XMLHTTPRequest (XMLHTTP请求)(“XHR”)对象来实现Web服务调用。
[0055]在一些实施例中,从由脚本插入的iframe中所包括的远程网页发出XHR请求,其中远程网页托管在插入数据服务器116上。在一些实施例中,由于同源策略规则,对除插入数据服务器116以外的服务器的XHR请求不可以由互联网访问应用104允许。在一些实施例中,这可以通过拦截对这样的跨源XHR请求的HTTP响应和向HTTP响应添加报头来克服,所述报头明确地允许来自源自插入数据服务器116的网页的调用。
[0056]例如,请求监视器202可以标识源自插入的远程网页的HTTP请求,并且响应监视器204然后可以修改响应于所标识的HTTP请求而接收的HTTP响应的HTTP报头。为了标识源自插入的远程网页的HTTP请求,请求监视器202可以检查所有传入的HTTP请求的HTTP报头,并且例如标识具有简单请求方法(即OPT1NS (选项)、HEAD (头部)、GET (得到)或POST (告示))的所有请求,其报头包括字段“来源”,并且其“来源”字段对应于插入数据服务器116。
[0057]在标识了源自插入的网页的请求之后,请求监视器202例如可以指示响应监视器204拦截将响应于该请求而接收的HTTP响应。当HTTP响应由响应监视器204拦截时,响应监视器204可以修改HTTP响应,诸如以向互联网访问应用指示:应当允许从插入数据服务器116上托管的网页发出的XHR请求。这例如可以通过将下列W3C跨源资源共享(“C0RS”)报头添加到HTTP响应而实现:
HTTP Request (请求):
OPT1NS I HEAD|GET|POST http://...HTTP/1.1Origin (来源):http://[插入数据服务器116地址]:[端口]Access-Control-Request-Method (访问-控制-请求-方法):Access-Control-Request-Headers (访问-控制-请求-报头):
HTTP Response (响应):
HTTP/1.1 200 OK
Access-Control-Allow-Origin (访问-控制-允许-来源): http://[插入数据服务器116地址]:[端口]
Access-Control-Allow-Methods (访问-控制-允许-方法): Access-Control-Allow-Headers (访问-控制-允许-报头):...其中,[插入数据服务器116地址]可以是插入数据服务器116的IP地址或域名(实或虚拟的)。
[0058]图7是图示web内容和web服务的安全网络内插入的示范性方法的流程图。该方法可以由网关(例如网关108)执行。虽然流程图以特定次序公开下列步骤,但领会的是:适当的地方,可以移动、修改、合并或删除至少一些步骤。
[0059]方法从订户设备(例如订户设备102)接收(702)请求。然后方法可选地从请求提取(704)报头信息。报头信息例如可以包括关于订户设备的信息以及关于发起请求的网站的来源的信息。接下来,方法可选地解析(706)虚拟域名,通过检测请
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1