用于处理基于浏览器的应用中的安全问题的多域访问代理的制作方法

文档序号:6642803阅读:182来源:国知局
专利名称:用于处理基于浏览器的应用中的安全问题的多域访问代理的制作方法
技术领域
本发明涉及连网的计算机应用,特别涉及-根据权利要求1的前序部分-一种用于程序的方法和系统-例如,在浏览器中运行的JavaScript程序,其中浏览器代表“安全沙盒(security sandbox)”,其阻止这种程序能够从与该程序被下载的服务器不同的服务器访问内容。
背景技术
参照图1,示出了现有技术的连网系统环境。万维网浏览器1用来参与因特网中万维网应用的运行。这些万维网应用在万维网服务器2上运行。
在最近的现有技术中,存在将由其它服务器5递送(deliver)的网页嵌入到它们的网页中的万维网应用2。在此各方(termini)的使用如下所述这些万维网应用被称作聚集万维网应用2,并且嵌入内容的网页被称作被聚集网页3。聚集万维网应用2在聚集万维网服务器4上运行。在特定情况下,服务器5是所谓的内容万维网服务器。
内容万维网服务器5驻留内容万维网应用6。该应用递送被集成到被聚集网页3中的万维网内容7。
该场景的例子是显示天气预报的聚集服务器2的门户页面。包含天气预报的网页由单独的内容万维网服务器5递送。该网页被集成到门户页面中。这样,该环境基本上由在网络中通过浏览器1通信的至少两个服务器4、5和客户端定义。
在现有技术中,存在两种不同的技术,用于在被聚集网页3上显示内容万维网应用6的内容,第一种是所谓的iFrame中的客户端侧聚集,第二种是服务器侧聚集。
对于现有技术iFrame,简短地说,当在页面中存在iFrame时,则将另一网页加载到该iFrame中并且将其显示给用户。该网页可以来自不同的万维网服务器。
客户端侧聚集如下工作在图2的步骤100,浏览器1向聚集万维网服务器4请求被聚集网页3。
在步骤200,聚集万维网服务器4构造被聚集网页3。万维网内容7的URL被写入到被聚集网页3上的iFrame中。
在步骤300,将被聚集网页3发送回到浏览器1。
在步骤350,浏览器1使用iFrame中的URL向万维网内容应用6请求万维网内容7。在步骤360,内容万维网应用6答复该请求并且往回发送万维网内容7。该万维网内容7包含将在浏览中执行的代码8。
在步骤400,浏览器1将被聚集网页3显示给用户,其中将iFrame的空间保持空白。
在步骤450,浏览器1将万维网内容7放置到iFrame中。
在步骤500,当万维网内容7包含可执行代码8时,浏览器开始在浏览器中执行代码8。在步骤600,如果该代码需要与内容万维网应用的网络连接,则它可以打开该连接。
该方法的主要缺点是框架(包括iFrame)被认为是其安全性脆弱,参见http//www.heise.de/security/news/meldung/48793。
对于上述现有技术的服务器侧聚集,为了克服客户端侧聚集的问题,内容可以由服务器4嵌入。服务器侧聚集致使得iFrame的使用不必要。在图3中示出了控制流程。
在步骤100,在这种情况下,浏览器1向聚集万维网服务器4请求被聚集网页3。
在步骤150,聚集万维网应用2从内容万维网应用6检索万维网内容7。
在步骤200,聚集万维网应用2将在步骤150接收的内容嵌入到被聚集网页3中。
在步骤300,聚集万维网服务器4将在步骤200构造的被聚集网页3发送回到浏览器1。
在步骤400,浏览器1向用户显示被聚集网页3。该被聚集网页3现在包含由内容万维网应用6递送的万维网内容7。
然而,如上所述,万维网内容7可能包含在步骤500在浏览器1中执行的代码。该代码8通常是采用JavaScript或Java编写的。这两种语言的安全概念拒绝与网页被下载的主机不同的主机之间的任何网络通信。
这在下面情形中将会导致问题第一,当使用上述服务器侧聚集方法来聚集内容万维网应用6的万维网内容7时;第二,当万维网内容7包含在浏览器1中执行的代码8时;第三,当在步骤600代码8需要与内容万维网应用6进行通信时;第四,当内容万维网应用6和聚集万维网应用2不是在相同的服务器和相同的TCP端口号上运行时。
如果万维网内容包含需要网络通信的代码,则代码执行将如下继续在步骤500,浏览器1从聚集万维网服务器4接收代码8以及被聚集网页3。在步骤600,当代码8被执行时,它试图打开与内容万维网服务器5的网络连接9,并且试图发出请求。
在另一步骤中,浏览器1的安全概念拒绝该网络访问9,因为只允许与聚集万维网服务器4的网络连接。这样,代码8执行失败。
这是现有技术的主要缺点。

发明内容
这样,本发明的目的是减轻如上所述的现有技术的缺点。
本发明的这一目的通过在所附的独立权利要求中表述的特征来实现。在各个从属权利要求中阐述了本发明的另外优选布置和实施例。现在应当参考所附权利要求。
根据本发明的最宽方面,一种连网环境中基于请求的通信方法,该连网环境在以下各方之间-终端用户相关客户端,具有客户端URL,并且通过万维网浏览器实现用户接口,-第一万维网服务器,具有第一服务器URL,并且与客户端的万维网浏览器进行通信,以及至少-第二万维网服务器,具有不同于第一服务器URL的第二服务器URL,并且与所述第一万维网服务器进行通信,其中第二万维网服务器(5)运行担当后端内容资源的万维网应用,-其中,当执行从所述第一万维网服务器下载的可执行代码例如Java代码或JavaScript代码以便访问所述第二万维网服务器上的所述后端内容资源时,由于安全限制有效,因此在被聚集万维网应用的运行中,由所述终端用户相关客户端万维网浏览器访问所述内容资源受到限制,其特征在于,使用在此被称作“代理小服务程序”的程序装置,其用于通过执行以下步骤来克服所述安全限制a)将从客户端进入第一服务器并且被定向为访问所述后端内容资源的请求中的请求者地址改变为所述第一服务器URL,b)将所述改变的请求转发到第二万维网服务器,c)从第二万维网服务器接收对所转发请求的响应,该响应包括所述第二服务器URL作为响应地址,d)将该响应地址改变成第一服务器URL,e)将改变后的请求转发回到最初发布该请求的客户端。
这样,本发明的一般思想是执行以下步骤a)将由客户端发布的进入请求重定向到第二万维网服务器,以及b)将来自第二万维网服务器的对该请求的响应转发给最初发布该请求的客户端,其中,地址被交换以便遵循客户端浏览器的安全限制,该安全限制拒绝执行从所述第一服务器加载以便在所述第二服务器上执行的代码。例如通过使用特定请求ID来确保在被重定向和被转发的请求和内容万维网应用之间的唯一关联。
如果后端是有状态的万维网应用,则需要该唯一关联。可以通过使用由内容万维网应用6生成的会话id来实现可能的关联。内容万维网应用将会话id发送回到代理小服务程序。然后,该代理小服务程序存储该会话id,并且下次它代表客户端发出请求时,将使用该会话id。使用这种技术还可以减少对后端应用的登陆请求的数目,并且可以提高整体性能。
当通过从第一或第二服务器中的任一个下载并且在客户端浏览器1上调用的可执行代码如Javascript、Java等来进行对后端资源的访问时,存在非常普通类型的使用。
可以从广义上理解术语“后端”资源。当它由一个或多个“第二”服务器托管(host)时,它将包括在第一服务器处不直接可用的硬件和软件。相比于“第一”服务器,这些第二服务器可以不同地被管理,位于不同位置,以及不同地被拥有。
此外,创新新基本方法可以有用地添加对客户端浏览器侧的用户的认证过程。这是有利的,因为非常通常地,上述“后端”资源仅仅提供有限制的访问,这样只有在成功的用户认证之后,它们才能被访问。典型的原因可能是以后端资源满足的所请求服务可能是应付费的服务并且/或者在这些资源的使用中存在保密约束。这样,通常访问它们需要用户名和相关联的密码。根据本发明的代理小服务程序可以有利地用于对向用户提供所谓的“单点登录”(SSO)体验的内容万维网服务器执行所需用户认证。
此外,当后端资源地址作为参数被嵌入到重定向的请求中时,对于多于一个“第二”服务器将由聚集万维网应用中的“第一”聚集服务器聚集的情形,可以取得易于使用的实现。


通过示例来说明本发明,并且本发明不局限于附图中各图的形式,
其中图1是示出现有技术的系统环境的示意图;图2是示出现有技术的客户端侧内容聚集的控制流程的示意图;图3是示出现有技术的服务器侧内容聚集的控制流程的示意图;图4是示出创新性实施例中的系统环境的示意图;图5是示出创新性实施例中的控制流程的示意图;以及图6是示出第二创新性实施例中的系统环境的示意图,其包括受到安全保护的后端资源。
具体实施例方式
一般参考附图并且现在特别参考图4,根据本发明的优选实施例,例如作为小服务程序、asp或cgi脚本而实现的附加万维网应用10被部署到聚集万维网应用2上。该万维网应用担当代理,并且在此示例性地被称作代理小服务程序10。代理小服务程序10被实现成使得能够接收通过HTTP发出的客户端浏览器1的请求。然后,通过第一服务器URL访问的代理小服务程序10将完全相同的请求发布到通过第二服务器URL访问的另一第二服务器,例如内容万维网服务器5。当该服务器答复时,代理小服务程序10往回发送完全相同的响应,作为对它先前接收的原始请求的响应。由代理10改变这些请求中的URL,以便遵循客户端处的浏览器的安全限制。
该序列也可以被视为“转发”。将原始请求转发给另一服务器,并且将响应转发回到原始请求者。
如果将要向其转发请求的服务器不时地变化,则可以以这样的方式实现代理小服务程序10,其中专用于此目的的请求参数确定将要向其转发请求的服务器的地址。
为了使用根据该实施例插入的代理小服务程序10,参照图5对上述步骤500-700进行如下修改在步骤500,浏览器1从聚集万维网服务器4接收可执行代码8以及被聚集网页3。
在步骤600,代码8打开与代理小服务程序10的网络连接并且发布请求。
在步骤650,代理小服务程序10将所述请求的URL从万维网应用2的URL(其自己的URL)改变成内容万维网应用6的URL。然后,在步骤660,它生成请求ID,以便控制内容万维网应用的状态。
在步骤700,代理小服务程序10将该请求转发给内容万维网应用6。这样,执行了重定向。应该注意的是,因为该请求发到与该代码来自的完全相同的服务器,即代理小服务程序10,所以浏览器1允许该请求。
然后,在下一步骤,由内容万维网应用6以包括所请求内容的另一请求来答复该请求。
由代理小服务程序10在步骤710接收并且识别(参见上面步骤660)该请求,该代理小服务程序10再次将地址从其自己的URL改变成客户端浏览器1的URL,参见步骤720。
在步骤750,代理小服务程序10将响应转发回到浏览器1处的代码8,作为对在600发出的请求的响应。
在步骤800,代码1接收该响应,并且使用在步骤700接收的数据继续执行。
在没有创新性代理小服务程序10的场景中-再次参见图3-因为浏览器1拒绝与内容万维网服务器5的网络通信9,所以在步骤800代码8的执行失败。
在步骤800,因为网络通信9被定向到聚集万维网服务器4并且由于代理小服务程序10-而非浏览器1-打开与内容万维网服务器5的网络通信11这一事实,所以使用代理小服务程序10允许代码8的执行。
在上面重定向方法的创新性实现中需要进行如下系统变更根据本发明,代理小服务程序10或其等价物必须被实现并部署在聚集万维网服务器4上。代理小服务程序10必须通过与聚集万维网应用2相同的主机名和端口号才可访问。
可以人工地或者可以由聚集万维网应用2进行下面的代码修改。
必须将由代码8访问的URL从内容万维网应用6的地址改变成代理小服务程序10的地址,参见上面的步骤650。
采用伪代码的例子如下原始代码连接到http//content.com/weather修改后的代码连接到http//aggregating.com/proxySrv?forwardTo=content.com/weather根据内容,可能有必要改变代理小服务程序接收到的内容。如果万维网内容包含对存储在内容万维网服务器5上的资源(例如,图像、其它网页等等)的引用,就要如此。必须修改这些引用,以便它们指向代理小服务程序。可以由存在于代理小服务程序10中的预编程代码来进行该修改。
下面的例子采用伪代码示出了这种更新,假定weathermap.jpg是内容万维网服务器上的资源原始引用<img src=”/images/weathermap.jpg”/>
修改后的引用<imgsrc=http//aggregating.com/proxySrv?forwardTo=content.com/images/weathermap.jpg/>
下面章节描述本发明的优选使用本发明对于外部应用被聚集到网页上的情况是必要的。这样,典型地,门户经常包含来自不同来源的内容。聚集万维网服务器4就是这种情况下的门户服务器。基于Java 2企业版(J2EE)的门户服务器十分适合于该任务,因为底层的J2EE应用服务器允许部署附加的万维网应用,例如包含代理小服务程序的应用。该代理小服务程序可以被实现为Java小服务程序。
一个使用该方案的样例应用是用于编辑万维网内容的门户应用。该编辑器在浏览器中运行。由该编辑器处理的内容被存储在不同于门户服务器的万维网服务器上。然后,该万维网服务器担当上述的内容万维网服务器5。当用户在浏览器中对该万维网内容进行修改时,可能需要从该万维网服务器请求一些资源例如图像。在没有代理小服务程序的情况下,例如在现有技术中,因为内置于普通浏览器程序中的上述“沙盒安全性”,所以不可能让编辑器代码访问这些后端资源。因为编辑器代码只能访问门户服务器,所以它将不能访问万维网服务器。
创新性代理小服务程序10不仅可以用于检索这样的后端资源,还可以用于上载信息。当用户使用该编辑器时,该编辑器可以在后台将当前编辑的网页保存到内容万维网服务器中。
使用代理小服务程序的另一优点是,使用相同的代理小服务程序来访问不同的万维网服务器5是可能的。它还使得能够容易地将聚集万维网服务器4移到不同地址,因为当原始万维网应用6保持不变时,只需要变更代理小服务程序。
在另外的变体中,并且参照图6,其示出了图4的各个部分,上述过程添加了用于访问内容资源6的相关用户认证。
在此,首先用户通过键入他的用户名和密码在门户服务器4处登录。
在该具体实施例中,门户服务器4管理现有技术的(IBM)“证书库(credential vault)”服务。该“证书库”服务通过存储用户拥有的所有证书来提供单点登录(SSO)用户体验。实现本创新性特征的代理小服务程序10将用户名和密码与唯一的安全标识符(标记)一起存储到证书数据库12中。然后,它将该标记发送回到浏览器。该标记可以被认为是短期生存的随机字母数字密码,其在会话结束之后将会变得无效。
浏览器接收该标记。
然后,假定用户点击,以提交对安全相关、受到密码保护的后端资源13例如科学图书馆、音乐或影片“店”的请求。
在这种情况下,在门户服务器处接收该用户请求以及作为该请求中的参数而被发送的标记。该标记用作索引以在证书数据库12中查找用户名和密码。然后,向“第二”服务器5发布包括该用户名和密码的请求。通过这样,在驻留了后端资源的服务器处成功地确认了这些个人数据之后,可以允许为该请求进行访问,并且可以使用受到密码保护的资源。
在结束了该资源的使用之后,优选地,删除该标记,而不留下恢复它的痕迹。这减少了滥用这种安全标记的风险。对于新请求,将在门户服务器处生成相应的新标记。
本发明能够用硬件、软件或者硬件和软件的组合来实现。根据本发明的工具能够以集中方式在一台计算机中实现,或者以分布方式实现,其中不同的单元散布在若干互连的计算机系统之间。适于执行在此所描述的方法的任何种类的计算机系统或其它设备都是合适的。硬件和软件的典型组合可以是带有计算机程序的通用计算机系统,其中,当被装载和执行时,该计算机程序控制该计算机系统,以便使其执行在此描述的方法。
本发明还可以被嵌入到计算机程序产品中,其包括使得能够实现在此描述的方法的所有特征,并且当被装载到计算机系统中时,其能够执行这些方法。
本上下文中的计算机程序装置或计算机程序意味着采用任何语言、代码或表示法的一组指令的任何表达,该组指令旨在使具有信息处理能力的系统直接地或者在以下操作的任一个或两者之后执行特定的功能a)转换成另一语言、代码或表示法;b)以不同的材料形式再现。
权利要求
1.一种连网环境中基于请求的通信方法,所述连网环境在以下各方之间-终端用户相关客户端,具有客户端URL,并且通过万维网浏览器(1)实现用户接口,-第一万维网服务器(4),具有第一服务器URL,并且与客户端的万维网浏览器(1)进行通信,以及至少-第二万维网服务器(5),具有不同于第一服务器URL的第二服务器URL,并且与所述第一万维网服务器(4)进行通信,其中,第二万维网服务器(5)运行担当后端内容资源(13)的万维网应用(6),-其中,当执行从所述第一万维网服务器下载的可执行代码以便访问所述第二万维网服务器上的所述后端内容资源(13)时,由于安全限制有效,因此在被聚集万维网应用(2)的运行中,由所述终端用户相关客户端(1)万维网浏览器访问所述内容资源(13)受到限制,其特征在于使用程序装置(10),其用于通过执行以下步骤来克服所述安全限制a)将从客户端进入第一服务器并且被定向为访问所述后端内容资源(13)的请求中的请求者地址改变(650)为所述第一服务器URL,b)将所述改变的请求转发到第二万维网服务器(5),c)从第二万维网服务器(5)接收(710)对所转发请求的响应,所述响应包括所述第二服务器URL作为响应地址,d)将该响应地址改变(720)为第一服务器URL,e)将改变后的请求转发回到(750)最初发布该请求的客户端。
2.根据权利要求1所述的方法,还包括以下步骤生成(660)所述重定向的请求和所述内容资源(13)之间的唯一关联,以便控制万维网应用的不同状态。
3.根据权利要求1所述的方法,其中步骤b)包括将所述内容资源(13)的地址作为参数嵌入到所述重定向的请求中。
4.根据权利要求1所述的方法,其中,所述内容资源(13)将由将在所述终端用户相关客户端浏览器(1)处执行的可执行代码(8)使用。
5.根据权利要求1所述的方法,还包括以下步骤a)接收用户相关安全数据,b)将所述安全数据存储到安全数据库(12)中,c)在请求受到安全保护的内容资源(13)时,在所述数据库(12)中查询所述安全数据,d)将所述安全数据包括到所述重定向的请求中以便访问所述内容资源。
6.一种用于连网环境中基于请求的通信方法的网络服务器计算机系统(4),包括-终端用户相关客户端,具有客户端URL,并且通过万维网浏览器(1)实现用户接口,-第一万维网服务器(4),具有第一服务器URL,并且与客户端的万维网浏览器(1)进行通信,以及至少-第二万维网服务器(5),具有不同于第一服务器URL的第二服务器URL,并且与所述第一万维网服务器(4)进行通信,其中,第二万维网服务器(5)运行担当后端内容资源(13)的万维网应用(6),-其中,当执行从所述第一万维网服务器下载的可执行代码以便访问所述第二万维网服务器上的所述后端内容资源(13)时,由于安全限制有效,因此在被聚集万维网应用(2)的运行中,由所述终端用户相关客户端(1)万维网浏览器访问所述内容资源(13)受到限制,所述系统(4)的特征在于程序装置(10),其具有用于通过执行以下步骤来克服所述安全限制的功能组件a)将从客户端进入第一服务器并且被定向为访问所述后端内容资源(13)的请求中的请求者地址改变(650)为所述第一服务器URL,b)将所述改变的请求转发到第二万维网服务器(5),c)从第二万维网服务器(5)接收(710)对所转发请求的响应,所述响应包括所述第二服务器URL作为响应地址,d)将该响应地址改变(720)为第一服务器URL,e)将改变后的请求转发回到(750)最初发布该请求的客户端。
7.一种在用于参与连网环境中基于请求的通信方法的网络服务器系统(4)中执行的计算机程序,所述连网环境在以下各方之间-终端用户相关客户端,具有客户端URL,并且通过万维网浏览器(1)实现用户接口,-第一万维网服务器(4),具有第一服务器URL,并且与客户端的万维网浏览器(1)进行通信,以及至少-第二万维网服务器(5),具有不同于第一服务器URL的第二服务器URL,并且与所述第一万维网服务器(4)进行通信,其中,第二万维网服务器(5)运行担当后端内容资源(13)的万维网应用(6),-其中,当执行从所述第一万维网服务器下载的可执行代码以便访问所述第二万维网服务器上的所述后端内容资源(13)时,由于安全限制有效,因此在被聚集万维网应用(2)的运行中,由所述终端用户相关客户端(1)万维网浏览器访问所述内容资源(13)受到限制,其特征在于具有通过当在计算机上执行所述计算机程序代码部分时执行以下步骤来克服所述安全限制的功能组件a)将从客户端进入第一服务器并且被定向为访问所述后端内容资源(13)的请求中的请求者地址改变(650)为所述第一服务器URL,b)将所述改变的请求转发到第二万维网服务器(5),c)从第二万维网服务器(5)接收(710)对所转发请求的响应,所述响应包括所述第二服务器URL作为响应地址,d)将该响应地址改变(720)为第一服务器URL,e)将改变后的请求转发回到(750)最初发布该请求的客户端。
8.一种存储在计算机可用介质上的计算机程序产品,包括用于使计算机执行连网环境中基于请求的通信方法,所述连网环境在以下各方之间-终端用户相关客户端,具有客户端URL,并且通过万维网浏览器(1)实现用户接口,-第一万维网服务器(4),具有第一服务器URL,并且与客户端的万维网浏览器(1)进行通信,以及至少-第二万维网服务器(5),具有不同于第一服务器URL的第二服务器URL,并且与所述第一万维网服务器(4)进行通信,其中,第二万维网服务器(5)运行担当后端内容资源(13)的万维网应用(6),-其中,当执行从所述第一万维网服务器下载的可执行代码以便访问所述第二万维网服务器上的所述后端内容资源(13)时,由于安全限制有效,因此在被聚集万维网应用(2)的运行中,由所述终端用户相关客户端(1)万维网浏览器访问所述内容资源(13)受到限制,其特征在于所述程序产品具有通过当在计算机上执行所述计算机程序产品时执行以下步骤来克服所述安全限制的功能组件a)将从客户端进入第一服务器并且被定向为访问所述后端内容资源(13)的请求中的请求者地址改变(650)为所述第一服务器URL,b)将所述改变的请求转发到第二万维网服务器(5),c)从第二万维网服务器(5)接收(710)对所转发请求的响应,所述响应包括所述第二服务器URL作为响应地址,d)将该响应地址改变(720)为第一服务器URL,e)将改变后的请求转发回到(750)最初发布该请求的客户端。
全文摘要
公开一种在终端用户相关客户端、第一万维网服务器、以及至少第二万维网服务器之间的连网环境中基于请求的通信方法,其中,当执行从第一万维网服务器下载的可执行代码以便访问第二万维网服务器上的后端内容资源时,在被聚集万维网应用的运行中由终端用户相关客户端万维网浏览器访问内容资源受到限制,其特征在于使用程序装置执行以下步骤来克服安全限制将从客户端进入第一服务器并被定向为访问后端内容资源的请求中的请求者地址改变为第一服务器URL;将改变的请求转发到第二万维网服务器;从第二万维网服务器接收对所转发请求的响应,所述响应包括第二服务器URL作为响应地址;将该响应地址改变为第一服务器URL;将改变后的请求转发回到最初发布该请求的客户端。
文档编号G06F17/30GK1798037SQ20051009997
公开日2006年7月5日 申请日期2005年9月12日 优先权日2004年12月29日
发明者尤尔斯·豪克, 苏里格·安德雷亚斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1