CN101242336B - 远程访问内网Web服务器的方法及Web代理服务器 - Google Patents
远程访问内网Web服务器的方法及Web代理服务器 Download PDFInfo
- Publication number
- CN101242336B CN101242336B CN2008100850176A CN200810085017A CN101242336B CN 101242336 B CN101242336 B CN 101242336B CN 2008100850176 A CN2008100850176 A CN 2008100850176A CN 200810085017 A CN200810085017 A CN 200810085017A CN 101242336 B CN101242336 B CN 101242336B
- Authority
- CN
- China
- Prior art keywords
- url
- domain name
- virtual
- domain
- name
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种远程访问内网Web服务器的方法,由Web代理服务器网关执行以下步骤:对于Web服务器发送给用户端的第一报文,对其所包含的完全路径进行初始定向获得链接;对于用户端发送给Web服务器的第二报文,进行域名虚拟URL到域名真实URL的改写,或者,从初始定向完全路径中提取域名,直接进行重定向或者在预先设置的模糊策略匹配成功时为该子域名进行指定格式的虚拟URL映射及重定向。本发明还公开了一种Web代理服务器。本发明能够避免用户端的Cookie混淆,提高Web代理服务器的处理效率,以及降低系统处理开销。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种远程访问内网Web服务器的方法及一种Web代理服务器。
背景技术
Web代理服务器用于提供内网和外网之间Web服务的代理访问。一般情况下,如果是内网的主机访问外网的Web服务器时,Web代理服务器无需进行改写操作;而如果是外网的主机访问内网的Web服务器时,由于外网的主机无法直接获得内网Web服务器的地址,因此Web代理服务器,比如SSL VPN(基于安全套接层协议的虚拟专用网络)网关,需要执行双向的改写操作。本发明实施例就是针对Web代理服务器的以上需要执行改写操作的情况提出了新的改进方案。
以SSL VPN为例,对现有技术的工作原理及存在的不足说明如下:
SSL VPN是一种采用SSL(Secure Sockets Layer,安全套接层)进行报文的加密交换,从而实现远程访问内网(如企业局域网)服务器的VPN(Virtual Private Network,虚拟专用网络)技术,其工作原理如图1所示:SSL VPN网关与Internet的远程主机之间建立SSL连接,与企业局域网的服务器建立TCP(Transmission Control Protocol,传输控制协议)连接;远程主机向服务器发送的请求报文基于HTTPs(HTTP over SSL),即以加密的HTTP格式传送给SSL VPN网关,由SSL VPN网关终结该SSL连接,并基于HTTP(Hypertext Transfer Protocol,超文本传输协议)通过该TCP连接以明文方式传送给服务器;反之,服务器发送的应答报文基于HTTP通过该TCP连接以明文方式传送给SSL VPN网关,由SSL VPN网关基于HTTPs通过该SSL连接以加密方式传送给远程主机。
当上述内网服务器是Web服务器时,SSL VPN网关进行Web代理,包括:(1)SSL VPN网关将每个可以访问的内网Web服务器的资源地址(一般称为域名)映射为一条虚拟路径,并在虚实路径映射表中加以维护;以及,(2)SSL VPN网关通过URL(Uniform Resource Location,统一资源定位符)改写实现远程主机对该Web服务器的访问。其中,该URL改写涉及如下两个方面:一方面,当SSL VPN网关收到远程主机对虚拟路径的URL链接请求时,查找到与该虚拟路径对应的真实URL链接并对HTTPs报文中的相应字段进行修改;另一方面,当SSL VPN网关收到内网Web服务器返回给远程主机的页面时,需要对页面中的URL链接进行改写,以将页面中指向内网真实地址的URL替换为指向虚拟路径的URL。
在实际使用中,同一个Web服务器常常提供有多个不同的域名,这些域名通过相同的尾缀来表明同源性。例如:www.abc.com,map.abc.com,image.abc.com等等,都归属于同一个Web服务器。这样一组形似的域名可以用正则表达式“*.abc.com”来表示,“*”代表了任意字符串,因此“*.abc.com”可以被称为模糊站点,而指向模糊站点的URL可以被相应称为模糊站点的URL。可以看出,具有相同尾缀的模糊站点是属于同一个Web服务器的,其在管理和配置方面存在诸多相同之处,例如,删除Web服务器资源、对用户授予访问Web服务器的权限、设置对Web服务器的访问策略等等。在这种情况下,如果采用普通的SSL VPN网关代理方案,分别为每一个域名映射一条虚拟路径,显然不便于Web服务器的扩展,例如,当Web服务器新增加了一个域名,就需要在SSL VPN网关上增加一条对应的配置,否则无法进行新域名的识别;同时,这种分别的虚拟路径映射,将在一Web服务器的管理和配置发生变化时,必须进行相同的重复性操作,十分不便。因此,如何做到既能正确地实现虚拟路径映射,又能够方便快捷的进行多域名Web服务器的资源管理,是一个具有挑战性的问题。
现有技术中,解决多域名Web服务器远程访问问题的实现方案包括:
(1)SSL VPN网关以如下形式进行Web服务器虚拟路径的映射:在网关路径后面加上“,DanaInfo=old_url”;例如,域名http://www.abc.com将被映射为https://www.gateway.com/,DanaInfo=http://www.abc.com,其中,www.gateway.com为SSL VPN网关的路径,DanaInfo参数携带的是域名的原URL路径参数;
(2)设置模糊模式的访问策略,如,只要能够匹配*.abc.com,即可认为允许进行访问;
(3)当接收到HTTPs报文时,SSL VPN网关从请求中的DanaInfo字段提取URL并按照访问策略进行匹配,如果匹配成功,就表明用户请求的地址是被许可的,此时向相应的Web服务器转发改写后的、携带域名的原URL路径参数的HTTP请求。
上述远程访问Web服务器的技术方案,能够随着Web服务器管理和配置策略的变化而变化,从而避免分别针对不同的域名进行虚拟路径映射所导致的诸多缺陷;但是,其本身仍然存在不足,包括:
其虚拟路径映射方式增加了链接的长度,降低了传输效率;
其要求对用户的每一次HTTPs报文都进行DanaInfo参数解析,以确定是否可以进行转发,降低了SSL VPN网关的处理效率;
特别是,其进行虚拟路径映射后的链接都是指向www.gateway.com站点根目录的,这种情况下,如果该SSL VPN网关代理多个Web服务器,则从改写后的路径上是无法加以区分的。如果SSL VPN网关没有采取特殊的处理,将导致用户主机将各Web服务器的Cookie(一种在用户端保存的HTTP状态信息)混在一起,有可能产生错误;如果SSL VPN网关侧增加缓存以记录用户的Cookie,虽然能够保证功能上的正确性,但必然增加实现的复杂性。
发明内容
本发明的实施例旨在提供能够方便、快捷、准确的实现对内网多域名Web服务器进行远程访问的技术方案。
为实现上述目的,本发明的实施例提供了一种远程访问内网Web服务器的方法,适用于通过双向URL改写为处在外网的用户端提供远程访问处在内网的Web服务器功能的Web代理服务器;该Web代理服务器执行以下步骤:
S1、对于该Web服务器发送给该用户端的第一报文,对其所包含的完全路径进行初始定向获得链接;
S2、对于该用户端发送给该Web服务器的第二报文,对其所请求的链接加以识别;
如果该链接指向包括指定格式域名虚拟URL的虚拟路径,则按照该虚实路径映射表改写该虚拟路径为包括域名真实URL的完全路径;其中,该虚实路径映射表在初始化时添加每一该Web服务器主域名的映射表项,该映射表项可以包括域名真实URL和映射为指定格式的域名虚拟URL,且该域名虚拟URL和域名真实URL一一对应;
如果该链接为初始定向的完全路径,则从中提取相应的域名并识别其是否存在于该虚实路径映射表中;
是则,提取虚实路径映射表中匹配的域名虚拟URL改写该完全路径为虚拟路径,并进行该用户端到该虚拟路径的重定向;
否则,该域名为子域名,则根据预先设置的模糊匹配策略将该子域名与主域名进行匹配,在匹配的情况下将该子域名映射为指定格式的域名虚拟URL并用其改写该完全路径为虚拟路径,进行该用户端到该虚拟路径的重定向,以及,添加相应的表项到虚实路径映射表中。
本发明的实施例还提供了一种Web代理服务器,用于通过双向URL改写为处在外网的用户端提供远程访问处在内网的Web服务器的功能;包括:
主域名保存单元,用于保存所指定的每一该Web服务器的主域名;
策略保存单元,用于保存预先设置的该Web服务器子域名的模糊匹配策略;
映射单元,用于将域名映射为指定格式的域名虚拟URL;其中,该映射单元与该主域名保存单元连接,用于在初始化阶段将该指定的主域名映射为指定格式的域名虚拟URL;
虚实路径映射表单元,与该映射单元连接,用于保存映射后的表项;其中,该表项可以包括一一对应的域名虚拟URL和域名真实URL;
URL改写单元,与该虚实路径映射表单元连接,用于识别接收到的报文;
对于该Web服务器发送给该用户端的第一报文,对其所包含的完全路径触发初始定向单元;
对于该用户端发送给该Web服务器的第二报文,对其所请求的链接加以识别;如果该链接指向包括指定格式域名虚拟URL的虚拟路径,则按照该虚实路径映射表单元改写该虚拟路径为包括域名真实URL的完全路径;如果该链接为初始定向的完全路径,则从中提取相应的域名并识别其是否存在于该虚实路径映射表单元中;是则,触发重定向单元,否则,该域名为子域名,触发模糊匹配单元;
初始定向单元,与该URL改写单元连接,用于对该完全路径进行初始定向;
重定向单元,接受该URL改写单元的触发和该映射单元将子域名映射为指定格式的域名虚拟URL时的触发,用于提取虚实路径映射表中匹配的域名虚拟URL改写该完全路径为虚拟路径,并进行该用户端到该虚拟路径的重定向;
模糊匹配单元,与该URL改写单元和策略保存单元连接,用于接受该URL改写单元的触发,根据该模糊匹配策略将该子域名与主域名进行匹配,匹配成功则触发该映射单元将该子域名映射为指定格式的域名虚拟URL。
由上述技术方案可知,本发明的实施例通过静态映射主域名和动态映射子域名,采用不直接进行第一报文改写的方案,具有以下有益效果:
1、能够实现模糊站点不同域名的区分改写,避免了用户端的Cookie混淆;
2、对第一报文中包含的完全链接仅进行初始定向而非页面改写,提高Web代理服务器的处理效率;
3、无需对未加以请求的子域名进行虚拟URL的映射,降低了Web代理服务器的系统处理开销。
通过以下参照附图对优选实施例的说明,本发明的上述以及其它目的、特征和优点将更加明显。
附图说明
图1为SSL VPN技术的原理示意图;
图2为本发明所提供的远程访问Web服务器的方法一实施例的流程图;
图3A、3B为本发明所提供方法中,虚实路径映射表建立过程的流程图;
图4为一虚实路径映射表的图示;
图5为本发明所提供方法中,按照虚实路径映射表将域名虚拟URL改写为域名真实URL的实施例的流程图;
图6为本发明所提供的Web代理服务器一实施例的框图;
图7为图6所示映射单元一实施例的框图;
图8A、8B、8C为URL改写单元一实施例的框图。
具体实施方式
下面将详细描述本发明的具体实施例。应当注意,这里描述的实施例只用于举例说明,并不用于限制本发明。
首先,必须说明的是,本发明的实施例所提供的技术方案适用于内网多域名Web服务器,由Web代理服务器进行URL改写,包括对于外网用户端发送给内网Web服务器的第二报文的处理,以及对于内网Web服务器发送给外网用户端的第一报文的处理。以下描述以SSL VPN网关为例,当SSLVPN网关作为Web代理服务器时,第一报文为HTTP报文,第二报文为HTTPs报文。
其中,本发明实施例所提供的技术方案的改进之处主要体现在第一报文(以HTTP报文为例)完全路径改写方面。
所谓“完全路径”,是指包含协议、主机名和路径的链接的形式;在现有技术中,对于HTTP报文所包含的全部完全路径都要进行虚拟路径的改写,这不但要求对每一个域名都预先进行映射,而且由于查找内网地址对应的虚拟路径是比较耗时的操作,因此在分析HTTP报文时直接进行虚拟路径的改写会造成大量时间的浪费。本发明实施例所提供的技术方案主要针对克服这一点问题而提出。
与“完全路径”相对应的,还有“不完全的绝对路径”和“不完全的相对路径”。
所谓“不完全的绝对路径”,是指HTTP报文中不包含传输协议和主机地址,只包含相对于本服务器根目录绝对路径的链接;具体的,路径开头的“/”表示根目录,后面的内容说明了所要访问的目录和页面;由于不包含传输协议和主机地址,则默认使用当前页面的传输协议和源主机;例如,″/abc/789.htm″,″/abc/efg/lmn.htm″等;由于不完全的绝对路径指向的是Web服务器上的一个固定目录,而非Web代理服务器上的虚拟目录,因此如果用户直接向网关请求这样的路径,Web代理服务器无法找到对应的服务器资源,因此在现有技术中,对不完全的绝对路径需要进行改写,具体为在该不完全的绝对路径之前添加相应的虚拟路径目录,本发明实施例沿用这一思想。
所谓“不完全的相对路径”,即与不完全的绝对路径相比,HTTP报文中所包含的路径不是网站的根目录,而是相对于当前网页的路径;具体的,路径开头的“..”表示当前页面的父目录,例如,若当前页面的路径为“/portal/Home/index.htm”,则“../Login”表示的路径就是“/portal/Home/Login”。显然,其指向的仍是Web代理服务器的虚拟路径,因此无需改写,本发明实施例沿用这一思想。
另外需要说明的是,本发明实施例所涉及的域名真实URL和域名虚拟URL属于完全路径中主域名/子域名部分,而非完全路径和虚拟路径的全部。举例来说,url=http://www.domain.com/dir/path/page.htm?params是一个完全路径,其域名真实URL为www.domain.com;相应的,《a href=“/svpn/web1/123/a.htm”>是一个虚拟路径,其域名虚拟URL为“/svpn/web1”。
本发明实施例的主要改进之处在于,对于在实际的报文处理过程中对所请求子域名进行动态映射,以及HTTP报文中涉及的完全路径不直接进行虚拟路径改写,从而即保证用户端Cookie的区分,也提高Web代理服务器的处理效率。
针对上述改进,本发明相应提供了一种远程访问内网Web服务器的方法和一种Web代理服务器,该远程访问内网Web服务器的方法适用于通过双向URL改写为处在外网的用户端提供远程访问处在内网的Web服务器的Web代理服务器。
请结合图2,显示了本发明所提供的远程访问内网Web服务器的方法一实施例的流程图,由Web代理服务器执行以下步骤:
S1、对于Web服务器发送给用户端的第一报文(HTTP报文),执行以下操作:
S11、解析该HTTP报文,该报文中可能包括完全路径和不完全路径;
S12、对HTTP报文中包含的完全路径进行初始定向获得链接;
由于只有Web代理服务器有公网地址,而内网的Web服务器没有公网地址,因此远程用户端无法直接访问内网Web服务器,只能发送请求给Web代理服务器,即Web服务器包含子域名真实URL的完全路径并不能直接提供给用户端。
基于上述问题,本步骤采取了初始定向的操作,即在HTTP报文分析时不对完全路径做任何改写和处理。
较佳的,对页面中包含的该完全路径进行初始定向的步骤可以包括:将该完全路径改写为专有函数的参数,该专有函数用于根据预先设置的模糊匹配策略进行子域名与Web服务器主域名的匹配。
举例来说,对于http://map.domain.com/dir/path/page.htm?params,可以将其作为一个专有函数redirect.cgi的参数,改写为:/svpn/redirect.cgi,url=http://map.domain.com/dir/path/page.htm?params。其中,redirect.cgi是Web代理服务器上专门处理“完全路径”改写的CGI(Common Gateway Interface,通用网关接口)函数,如果用户点击了改写后的初始定向完全路径,则会向Web代理服务器发出redirect.cgi请求,交给CGI进行后续处理。
可以看出,Web服务器往往包括大量的子域名,如果Web代理服务器在初始化过程中时就直接对全部的子域名进行虚拟URL的映射,会造成网关计算资源的浪费,因此本发明实施例所提供的方法能够降低系统处理开销,这是本发明的一个优势。
本发明的另一个优势在于,由于在一个HTTP页面中,往往包含指向多个域名(可能是主域名,也可能是子域名)的链接,且这些域名未必会被用到,因此仅对页面中的完全路径进行初始定向,而不进行进一步的分析和处理,能够有效地提高Web代理服务器的处理效率。
此外,本步骤S12还可以包括:对HTTP报文中所包含的不完全路径进行URL改写,使改写后的链接指向包括指定格式域名虚拟URL的虚拟路径;具体的:
当Web代理服务器网关建立了与Web服务器和外网用户端的连接(SSLVPN网关作为Web代理服务器的情况下为TCP连接和SSL连接)后,其网关内部就记录和管理着各连接的对应关系;
对于不完全的绝对路径来说,其提供的是相对于该Web服务器域名根目录的路径,因此需要在不完全的绝对路径之前根据各连接的对应关系,自动添加相应的域名虚拟URL,使其成为一个完整的虚拟路径,即改写后该不完全的绝对路径指向包括指定域名虚拟URL的虚拟路径;
对于不完全的相对路径来说,其提供的是相对于当前页面的路径,由于当前页面在Web代理服务器内已经指向确定的虚拟路径,因此无需改写,只要保持该不完全的相对路径不变即可指向正确地虚拟路径。
由于上述对于不完全路径的改写可沿用现有技术,因此不再赘述。
S13、将处理后的HTTP报文发送给用户端,该处理包括初始定向处理,同时,还可以包括URL改写。
S2、对于用户端发送给Web服务器的第二报文(HTTPs报文),执行以下步骤:
S21、对其所请求的链接加以识别,基于识别结果分别执行步骤S22和步骤S23;
用户端所请求的链接则可能是初始定向的完全路径或者虚拟路径。上述两种情况将被区分处理。
S22、如果该链接指向包括指定格式域名虚拟URL的虚拟路径,则按照虚实路径映射表进行改写,具体为将其中的域名虚拟URL改写为域名真实URL,并提供给Web服务器;
具体来说,包括指定格式域名虚拟URL的虚拟路径可能分为两种:一种,是用户端点击HTTP页面所请求的虚拟路径;另一种,是用户端请求Web代理服务器初始化后提供的包括每一Web服务器主域名的虚拟路径。
对于第二种情况说明如下:
该Web服务器主域名预先被指定。举例来说,如果一个Web服务器同时提供有www.abc.com,map.abc.com,image.abc.com等等域名,那么在初始化阶段并不需要对每一个域名都进行虚拟URL的映射,而是选择一个主域名,一般来说,主域名就是Web服务器首页所对应的域名。
在初始化时,该Web服务器主域名的映射表项被添加到虚实路径映射表中,可以包括域名真实URL和映射为指定格式的域名虚拟URL,且该域名虚拟URL和域名真实URL一一对应;以上述提到的主域名为例,就是对域名www.abc.com进行映射,并将该映射添加到虚实路径映射表中,从而能够实现用户端的访问。这也就意味着,Web代理服务器提供给用户端的域名资源中,凡是完全路径中www.abc.com的部分,都被映射为域名虚拟URL,当然,完全路径中的其他部分不变;以所有的链接都映射到Web代理服务器的“/svpn/”目录下为例,假设Web服务器1的主域名为http://www.abc.com,其映射的域名虚拟URL为web1,假设Web服务器2的主域名为http://www.efg.com,其映射的域名虚拟URL为web2,假设Web服务器3的主域名为http://www.hij.com,其映射的域名虚拟URL为web3;则Web代理服务器中所维持的虚实路径映射表可如下例所示:
/svpn/web1 <----> http://www.abc.com
/svpn/web2 <----> http://www.efg.com
/svpn/web3 <----> http://www.hij.com
这样,当用户通过外网用户端的Web浏览器,使用HTTPs协议登录Web代理服务器时,就能够获得一张初始化的、允许访问的Web站点列表,该列表中的全部链接都指向所请求的内网Web服务器主域名。
因此,作为用户端的主机能够了解所允许访问的Web服务器主域名的相关链接。如果用户点击这些URL链接,远程用户端就会与Web代理服务器建立SSL链接,并发出一个指向该虚拟链接的HTTPs报文。例如,
GET/svpn/web1/xyz HTTP/1.1
Host:X.X.X.X
其中,“X.X.X.X”是Web代理服务器的地址或域名,GET后面跟的是Web页面所在的虚拟链接完全路径。“HTTP/1.1”是协议的版本。关于HTTPs报文的详细说明请见RFC2616。
无论是用户端点击初始化列表的链接,还是点击HTTP报文中提供的链接,都会向Web代理服务器发送关于虚拟路径的请求,由其按照虚实路径映射表进行改写;
例如,上述提供的域名虚拟URL为/svpn/web1的HTTPs报文可以修改为:
GET/xyz/HTTP/1.1
Host:www.abc.com
即,转换过的请求将发往Web服务器“www.abc.com”,请求“/xyz/”目录下的页面。
进一步的,本步骤S22中按照虚实路径映射表进行改写的较佳实施例将结合本发明实施例提供的虚实路径映射表的建立和查找过程,在后续的实施例中加以详细描述。
S23、如果该链接径为初始定向的完全路径,则从中提取相应的域名并识别其是否存在于虚实路径映射表中;以及,基于识别结果分别执行步骤S24和步骤S25;
需要指出,由于Web服务器发送给用户端的HTTP报文包括的完全路径可能是主域名的完全路径,也可能是子域名的完全路径,Web代理服务器并不做分析和处理,因此本步骤提取出的域名可能是主域名,也可能是子域名。
S24、是则,说明该主域名或子域名已经进行过虚拟URL的映射,因此需要提取虚实路径映射表中匹配的域名虚拟URL改写该完全路径为虚拟路径,并进行从用户端到该虚拟路径的重定向;
重定向的用户端将重新按照定向后的域名虚拟URL发出请求,并调用该域名虚拟URL相关的Cookie,从而保证了不同域名对应不同的Cookie记录。
S25、否则,说明该域名未进行过虚拟URL的映射,因此该域名必然为子域名,则根据预先设置的模糊匹配策略将子域名与主域名进行匹配;以及,基于匹配的结果分别执行步骤S26和步骤S27;
其中,该预先设置的模糊匹配策略是用以说明什么样的域名也属于该Web服务器。例如,配置一条访问abc网站的Web资源,其主地址为www.abc.com,站点匹配规则为:*.abc.com。
则步骤S25以上述提供的redirect.cgi为例,执行如下:CGI从URL参数中提取原来的“页面请求”,即真实的完全路径;从该完全路径中提取子域名真实URL;将该真实URL与系统中各Web资源的主域名基于模糊匹配策略进行匹配,确定该请求是否有效。
S26、在匹配的情况下,说明该HTTPs请求有效,则将该子域名映射为指定格式的域名虚拟URL;
用该域名虚拟URL改写该完全路径为虚拟路径,并进行用户端到子域名的指定格式的域名虚拟URL的重定向,重定向的用户端不再以网关地址作为根目录,而是具有唯一的虚拟路径,即按照重定向后的包括域名虚拟URL的虚拟路径发出请求,并相应生成该域名虚拟URL的Cookie;显然,再次发出的HTTPs请求中就包含有指定格式的域名虚拟URL,直接按照步骤S22进行处理即可;
以及,添加相应的子域名映射表项到虚实路径映射表中,该表项可以包括一一对应的域名虚拟URL和域名真实URL,以供后续的比对。
S27、在不匹配的情况下,说明该HTTPs请求无效,则拒绝访问。
可以看出,本发明实施例所提供的远程访问内网服务器的方法的再一优势在于,能够根据用户端的实际请求,动态进行域名虚拟URL的映射,使被请求的子域名具有唯一的虚拟链接,从而用户端主机上能够在后续的处理中实现Cookie的区分。
较佳的,上述步骤S2中进行用户端到虚拟路径重定向的步骤可以包括:向用户端发送重定向报文,该报文携带包括所映射的指定格式域名虚拟URL的虚拟路径。
通过上述步骤S1~S2,本发明实施例所提供的远程访问内网Web服务器的方法配置建立主域名的域名虚拟URL,动态建立子域名的域名虚拟URL,能够实现模糊站点不同域名的区分改写,避免了用户端的Cookie混淆;以及,提高了Web代理服务器的处理效率和降低了Web代理服务器处理开销。
需要指出的是,在实际处理中,步骤S1和S2并无严格的时序关系,可能并发处理多个请求。
本发明实施例所要解决的另外一个问题在于,虚实路径映射表的查找往往是比较耗时的操作;如果按照传统的技术方案,对每一个子域名都在初始化阶段建立虚拟映射,那么还可以预设映射规律以便于查找,但对本发明所提供的技术方案而言,由于子域名的URL映射是动态建立的,因此无法预留相应的URL资源,这样,如何有效的进行虚实路径映射表的查找也就成为愈加值得注意的问题。
为了解决上述问题,本发明提供了一种新的域名虚拟URL格式,并相应提供了将主域名或子域名映射为指定格式的域名虚拟URL的具体方案如下:
首先,为所述主域名或子域名分配资源ID,所述资源ID与所述主域名或子域名唯一对应,从而避免虚拟URL链接过长所导致的传输效率降低;
将所述分配的资源ID映射到Web代理服务器指定目录下。
假设在Web代理服务器上将所有的虚拟URL都映射到“/svpn/”目录下,则所映射的域名虚拟URL格式为“/svpn/resID/”,resID为资源ID;则在实际改写过程中,就使用该域名虚拟URL替换完全路径中相应的域名真实URL部分,如采用相应的域名虚拟URL替换完全路径中的http://www.abc.com或者http://map.abc.com部分。
较佳的,该资源ID可以为数字ID,有利于查找和匹配。
具体的,为主域名或子域名分配资源ID的步骤可以包括:
至少为所述主域名或子域名分配主索引字段和子索引字段;其中,为不同Web服务器的主域名资源ID分配不同的主索引字段,为同一Web服务器的子域名资源ID分配与其主域名相同的主索引字段和不同的子索引字段;
因此,子域名ID的分配规则可以为:子域名资源ID=主域名的资源ID+子索引字段值,例如,当主域名资源ID为A0100,子索引字段之为01,则子域名资源ID就可以生成为A0101。
更佳的,还包括为主域名或子域名分配失效标识字段;其中,随机赋值主域名资源ID的失效标识字段,按照其主域名资源ID的失效标识字段赋值子域名资源ID的失效标识字段。
下面通过一个具体实施例加以说明:给每个Web服务器需要进行虚拟URL映射的域名分配一个32位的资源ID,资源ID的编码格式如下:
resID=Random(12bit)+Index(12bit)+SubIndex(8bit);
其中,resID为资源ID,其对应唯一的一个域名,可能是Web服务器的主域名,也可能是Web服务器符合模糊匹配策略的子域名,用以唯一标识该域名;
Index为主索引字段,对于符合同一模糊匹配策略的一组域名,其虚拟URL将具有相同的主索引字段。这样,通过主索引表项查找,可以基于某种算法(如HASH算法)快速找到相应的虚拟URL;
SubIndex为子索引字段,代表符合同一模糊匹配策略的分项;举例来说,子索引字段为0时对应的是主域名,不为0时,代表子域名;
Random为随机数,用来避免对已经失效的资源ID再进行引用;举例来说,如果在用户端访问过程中管理员删除了相关的映射表项,并立刻重建,则有可能该映射表项释放出来的主索引字段和子索引字段将被新的资源表项重用。但即使如此,由于失效标识字段是随机分配的,能够实现新旧资源表项的区分,使用户端能够根据新的访问资源列表重新登录。
这种新的URL格式同时带来了虚实路径映射表建立和查找过程的变化,如下所述。
首先是虚实路径映射表建立过程的变化,请参考图3A和图3B:
步骤S2中添加相应的主域名映射表项到虚实路径映射表中的步骤如图3A所示,可以包括:
以二维表的形式建立上级虚实路径映射表,每一二维表项作为一主域名表项,用于记录一主域名的URL映射,其中,每一主域名表项可以包括主索引项、资源ID项、域名虚拟URL项、域名真实URL项和关联指针项;
将该主域名对应的主索引字段、资源ID、域名虚拟URL和域名真实URL相应添加到主索引项、资源ID项、域名虚拟URL项、域名真实URL项中;
如图4所示,对于域名真实URL为http://www.abc.com的主域名来说,其资源ID为0xA8500100,主索引为001,子索引为保留字段00,A85为失效标识字段;
对于域名真实URL为http://www.efg.com的主域名来说,其资源ID为0xBCD00200,主索引为002,子索引为保留字段00,BCD为失效标识字段;
对于域名真实URL为http://www.hij.com的主域名来说,其资源ID为0xEF900300,主索引为003,子索引为保留字段00,EF9为失效标识字段。
步骤S2中添加相应的子域名映射表项到虚实路径映射表中的步骤如图3B所示,包括:
识别相应主域名表项是否关联有下级虚实路径映射表;
如果未关联,则以二维表的形式建立下级虚实路径映射表,每一二维表项作为一子域名表项,用于记录一子域名的URL映射,其中,每一子域名表项可以包括子索引项、域名虚拟URL项和域名真实URL项;
将子域名对应的子索引字段、域名虚拟URL和域名真实URL相应添加到子索引项、虚拟URL项和真实URL项;
以及,将该下级虚实路径映射表通过指针关联到上级虚实路径映射表中相应的关联指针项;
如果已关联,则直接在所关联的下级虚实路径映射表中添加子域名表项,即将子域名对映的子索引字段、域名虚拟URL和域名真实URL相应添加到子索引项、域名虚拟URL项和域名真实URL项。
如图4所示,对于域名真实URL为http://img.abc.com、http://map.abc.com、http://song.abc.com的子域名来说,其子索引分别为01、02和03,主索引字段和失效标识字段保持与主域名一致。
这样,无论所扩展进行URL映射的子域名的数目如何,其都能够获得规律性的虚拟URL,并通过二级虚实路径映射表加以记录。
其优势不仅如此,上述新的URL格式和虚实路径映射表建立过程的特点也带来了URL改写过程中虚实路径映射表查找过程的变化。
如图5所示,步骤S22中按照所述虚实路径映射表进行改写的步骤可以包括:
S221、从虚拟路径所包含的域名虚拟URL中提取资源ID,如0xA8500100或0x8500101;
S222、根据该资源ID的主索引字段,如001,在上级虚实路径映射表的主索引项中执行匹配;匹配成功,则执行步骤S223,否则拒绝访问;
S223、识别虚拟URL的子索引字段是否为保留字段,是则,例如00,执行步骤S224,否则,例如01,执行步骤S225;
S224、调用主索引项相应的域名真实URL项,如www.abc.com,用该域名真实URL进行虚拟路径中指定格式的域名虚拟URL,即,将虚拟路径中的“/svpn/A8500100”改写为“www.abc.com”;
S225、根据虚拟URL的子索引字段在所关联的下级虚实路径映射表的子索引项中执行匹配,匹配成功,则执行步骤S226,否则拒绝访问;
S226、调用所述子索引项相应的域名真实URL项,,如http://img.abc.com,用该域名真实URL进行虚拟路径中指定格式的域名虚拟URL,即,将虚拟路径中的“/svpn/A8500101”改写为“http://img.abc.com”。
可以看出,上述虚实路径映射表能够实现快速的查找。
较佳的,在存在失效标识字段时,步骤S223之前还可以包括:比较域名虚拟URL的资源ID与资源ID项中保存的资源ID,如果失效标识字段一致则继续执行步骤S223,否则拒绝访问。
通过上述步骤,可以避免已失效资源ID被引用。因此,通过失效标识字段系统识别出资源ID是否有效,无需管理员实时监控自员有效性,因此可以尽可能的减少虚实路径映射表所需的维护工作。
综上所述,本发明所提供的远程访问Web服务器的方法,不但能够实现模糊站点在用户端的Cookie区分,提高了系统处理效率;而且,结合所提供的指定格式的虚拟URL和二级虚实路径映射表,能够带来处理效率的进一步提高。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如下步骤:
S1、对于所述Web服务器发送给所述用户端的第一报文,对其所包含的完全路径进行初始定向获得链接;
S2、对于所述用户端发送给所述Web服务器的第二报文,对其所请求的链接加以识别;
如果所述链接指向包括指定格式域名虚拟URL的虚拟路径,则按照虚实路径映射表改写所述虚拟路径为包括域名真实URL的完全路径;其中,所述虚实路径映射表在初始化时添加每一所述Web服务器主域名的映射表项,所述映射表项包括域名真实URL和映射为指定格式的域名虚拟URL,且所述域名虚拟URL和域名真实URL一一对应;
如果所述链接为初始定向的完全路径,则从中提取相应的域名并识别其是否存在于所述虚实路径映射表中;
是则,提取虚实路径映射表中匹配的域名虚拟URL改写所述完全路径为虚拟路径,并进行所述用户端到所述虚拟路径的重定向;
否则,所述域名为子域名,则根据预先设置的模糊匹配策略将所述子域名与主域名进行匹配,在匹配的情况下将所述子域名映射为指定格式的域名虚拟URL并用其改写所述完全路径为虚拟路径,进行所述用户端到所述虚拟路径的重定向,以及,添加相应的子域名映射表项到虚实路径映射表中。
所述的存储介质包括:ROM/RAM(Read Only Memory/Random-AccessMemory,只读存储器/随机访问内存)、磁碟或者光盘等。
以下仅就实现重定向的方法举一例,说明实现的可行性:
HTTP/1.1 307 Temporary Redirect
Server:SSL VPN PROXY
Location:https://192.168.111.88/svpn/A8500101/images/ed_word.gif
Pragma:no-cache
Cache-Control:no-cache
Content-Type:text/html
Content-Length:278
<HTML><HEAD><METAHTTP-EQUIV=″REFRESH″CONTENT=″0;URL=https://
192.168.111.88/svpn/A8500101/images/ed_word.gif″><TITLE>SSL VPN PROXY
</TITLE></HEAD><BODY><A href=″https://192.168.111.88/svpn/A8500101/
images/ed_word.gif ″>url moved</A></BODY></HTML>
在以上的处理中,采用HTTP协议的307号应答报文进行重定向,具体说明见参考RFC2616;同时,附加了一个html重定向页面,其中使用META元素的HTTP-EQUIV属性的refresh方法,要求用户端按照指定的地址刷新页面,从而保证了在用户端浏览器不支持307号报文时,也能进行重定向。
相应的,本发明的实施例还提供了一种Web代理服务器10,该Web代理服务器10用于通过双向URL改写为处在外网的用户端20提供远程访问处在内网的Web服务器30的功能。
请参见图6,该Web代理服务器10包括:
主域名保存单元101,用于保存所指定的每一Web服务器30的主域名;该主域名指定的操作发生于Web代理服务器10初始化配置Web资源时,对于作为模糊站点的Web服务器30,一般指定其首页地址为其主域名;
策略保存单元102,用于保存预先设置的Web服务器30子域名的模糊匹配策略,用以说明什么样的域名也属于该Web服务器30;
映射单元103,用于将域名映射为指定格式的虚名虚拟URL;举例来说,本发明实施例中映射单元103可以通过给每个Web服务器30的域名分配一个32位的资源ID来进行虚拟URL映射,该资源ID的编码格式如下:
resID=Random(12bit)+Index(12bit)+SubIndex(8bit);
假设在Web代理服务器10上将所有的虚拟URL都映射到“/svpn/”目录下,则所映射的虚拟URL格式为“/svpn/resID”。当然,本领域普通技术人员也可以通过指定其他格式的资源ID来进行虚拟URL的映射。
特别是,映射单元103与主域名保存单元101连接,用于在初始化阶段将所述指定的主域名映射为指定格式的域名虚拟URL。可以看出,初始化时Web代理服务器10并不会对所有的Web服务器域名进行URL映射,而是对所指定的主域名加以映射,此时用户端20所了解的网络资源也仅限于URL映射后的主域名。
虚实路径映射表单元104,与映射单元103连接,用于保存映射后的表项;其中,所述表项可以包括一一对应的域名虚拟URL和域名真实URL;显然,在初始化阶段,该虚实路径映射表单元104中仅保存有主域名的表项;
URL改写单元105,与虚实路径映射表单元104连接,用于识别接收到的报文;
对于Web服务器30发送给用户端20的第一报文,对其所包含的完全路径触发初始定向单元106;显然,URL改写单元105并不对第一报文页面中的完全路径进行分析和改写,从而提高处理效率。
此外,URL改写单元105还可以对其所包含的不完全路径进行URL改写,使改写后的链接指向包括指定格式域名虚拟URL的虚拟路径;
对于用户端20发送给Web服务器30的第二报文,对其所请求的链接加以识别,有可能包括域名虚拟URL,也有可能是初始定向的完全路径;
如果该链接指向包括指定格式域名虚拟URL的虚拟路径,则按照虚实路径映射表单元104改写该虚拟路径为包括域名真实URL的完全路径,并发送给Web服务器30;
如果该链接为初始定向的完全路径,则从中提取相应的域名并识别其是否存在于虚实路径映射表单元104中;是则,触发重定向单元107,否则,触发模糊匹配单元108;
综上所述,URL改写单元105所处理的报文基本上可以分为三类:用户端20发送的、指向包括指定格式域名虚拟URL在内的虚拟路径的第二报文,用户端20发送的、请求初始定向完全路径的第二报文,以及,Web服务器30发送的第一报文,URL改写单元105必须对其加以区分处理,相应内容将在后续加以描述。
初始定向单元106,与URL改写单元105连接,用于对完全路径进行初始定向;
本领域普通技术人员可以了解,这种初始定向并不是虚拟URL的映射,只不过是在Web服务器子域名的真实URL不能提供给用户端的情况下,一种虚拟URL的替代方案。
同时,本领域普通技术人员还可以了解,该初始定向的完全路径可能包含主域名,也可能包含子域名,初始定向单元106并不对其进行分析和处理。
较佳的,可以将真实URL改写为专有函数的参数。
重定向单元107,接受URL改写单元105的触发和映射单元103将子域名映射为指定格式的域名虚拟URL时的触发,用于提取虚实路径映射表中匹配的域名虚拟URL改写所述完全路径为虚拟路径,并进行用户端到虚拟路径的重定向;这就保证了每个被请求的链接都能够通过重定向,调用所包含域名的Cookie。
模糊匹配单元108,与URL改写单元105和策略保存单元102连接,用于接受URL改写单元105的触发,根据预先配置的模糊匹配策略将子域名与主域名进行匹配,匹配成功则说明相应的子域名是有效的,触发映射单元103将子域名映射为指定格式的域名虚拟URL。
较佳的,该模糊匹配单元108可以为通用网关接口CGI,用于根据模糊匹配策略进行子域名与Web服务器主域名的匹配;与之配合的,初始定向单元106执行将完全路径改写为CGI参数的操作。
具体来说,URL改写单元105不进行完全路径的改写,而由初始定向单元106对于Web服务器30反馈页面中涉及的完全路径进行初始定向,将该完全路径作为CGI的参数;这样,当用户端20请求该完全路径时,就发出了相应的CGI请求,由URL改写单元105识别,对于已经映射的主域名或者子域名,直接进行重定向,调用相应域名的Cookie,而对于未曾映射的子域名,则需要交给模糊匹配单元108处理;模糊匹配单元108根据模糊匹配策略,对真实URL进行匹配,并在匹配成功的情况下触发映射单元103为子域名进行指定格式的URL映射。
由此可以看出,本发明实施例所提供的URL改写单元105是根据配置建立主域名的域名虚拟URL,根据实际需求动态映射子域名的域名虚拟URL,映射单元103映射后的主域名和子域名虚拟URL都保存在虚实路径映射表单元104中,其中,该子域名的域名虚拟URL映射是Web代理服务器10根据对第二报文的解析以及对子域名的模式匹配进行的。
因此,通过本发明实施例所提供的Web代理服务器10,对于用户端20所请求的每一个主域名和子域名都赋予了单独的域名虚拟URL,能够实现模糊站点不同域名的区分改写,避免了用户端的Cookie混淆;以及,无需对未加以请求的子域名进行虚拟URL的映射,无需先行对HTTP页面进行完全路径的改写,提高了Web代理服务器的处理效率并降低了网关处理开销。
较佳的,该Web代理服务器10可以为网关,尤其是SSL VPN网关。这种情形下,该SSL VPN网关与处在外网的用户端建立SSL连接,与处在内网的Web服务器建立TCP连接,且第一报文为HTTP报文,第二报文为HTTPs报文。
较佳的,为了实现快速的虚实路径映射表建立和查找,本发明实施例还提供了域名虚拟URL映射方案。如图7所示,显示了映射单元103的一个实施例,包括:
资源ID分配模块1031,用于为主域名或子域名分配资源ID,所述资源ID与所述主域名或子域名唯一对应;
资源ID映射模块1032,用于将所述分配的资源ID映射到Web代理服务器10的指定目录下。
其中,资源ID分配模块1031至少包括:
主索引字段分配子模块,用于为主域名或子域名分配主索引字段,其中,为不同Web服务器的主域名资源ID分配不同的主索引字段,为同一Web服务器的子域名资源ID分配与其主域名相同的主索引字段;
子索引字段分配子模块,用于为主域名或子域名分配子索引字段;其中,为同一Web服务器的子域名资源ID分配不同的子索引字段;
较佳的,还包括:
失效标识字段分配子模块,用于为所述主域名或子域名分配失效标识字段;其中,随机赋值所述主域名资源ID的失效标识字段,按照其主域名资源ID的失效标识字段赋值所述子域名资源ID的失效标识字段。该失效标识字段用于避免对失效域名ID的再引用。
基于上述映射单元103提供的域名虚拟URL,本发明实施例提供了Web代理服务器10的虚实路径映射表建立方案;具体的,虚实路径映射表单元104包括:
二维表形式的上级虚实路径映射表,每一二维表项作为一主域名表项,用于记录一主域名的URL映射;其中,每一主域名表项可以包括主索引项、资源ID项、域名虚拟URL项、域名真实URL项和关联指针项,用于相应添加主索引字段、资源ID、域名虚拟URL和域名真实URL和所关联的到下级虚实路径映射表的指针;
二维表形式的下级虚实路径映射表,通过指针关联到上级虚实路径映射表中相应的关联指针项,且每一二维表项作为一子域名表项,用于记录一子域名的URL映射;其中,每一子域名表项可以包括子索引项、域名虚拟URL项和域名真实URL项,用于相应添加子索引字段、域名虚拟URL和域名真实URL;
虚实路径映射表单元104的一个具体的实施例请参见图4。
可以看出,无论所需进行URL映射的子域名的数目如何,其都能够获得规律性的虚拟URL,并通过二级虚实路径映射表加以记录。
相应的,本发明实施例提供了Web代理服务器10的虚实路径映射表查找方案,其具体体现在URL改写单元105上。
首先,URL改写单元105需要识别不同的报文并加以区分处理,如图8A所示,该URL改写单元105包括:
报文识别模块1051,用于识别接收到的报文,为用户端20发送的第二报文,则触发第二报文改写模块1052,为Web服务器30发送的第一报文,则触发第一报文改写模块1053。
第二报文改写模块1052和第一报文改写模块1053分别如图8B和8C所示。
具体的,第二报文改写模块1052与上、下级虚实路径映射表连接,包括:
链接识别子模块,用于识别所述第二报文请求的链接,如果指向包括指定格式域名虚拟URL的虚拟路径,则触发主索引字段匹配子模块;如果为初始定向的完全路径,则触发子域名识别单元;
主索引字段匹配子模块,用于根据指定格式的域名虚拟URL的主索引字段在上级虚实路径映射表的主索引项中执行匹配;
子索引字段识别子模块,用于根据所述主索引字段匹配子模块匹配成功的触发,进行虚拟URL的子索引字段的识别;
子索引字段匹配子模块,用于根据子索引字段为非保留字段的情况下所述子索引字段识别子模块的触发,根据域名虚拟URL的子索引字段在下级虚实路径映射表的子索引项中执行匹配;
虚拟URL改写子模块,用于根据子索引字段为保留字段的情况下所述子索引字段识别子模块的触发,以及根据所述子索引字段匹配子模块匹配成功的触发,调用匹配成功的相应域名真实URL项,将虚拟路径中指定格式的域名虚拟URL部分改写为所述域名真实URL;
子域名识别子模块,用于从初始定向完全路径中提取相应的子域名并识别其是否存在于所述上、下级虚实路径映射表中,是则触发重定向单元107,否则触发模糊匹配单元108。
第一报文改写模块1053包括:
报文解析子模块,用于解析接收到的第一报文,对于其中的不完全路径触发不完全URL改写子模块,对于其中的完全路径触发初始定向单元106;
不完全URL改写子模块,用于识别所述不完全路径,对于不完全的绝对路径,添加相应的虚拟URL改写为虚拟路径;对于不完全的相对路径保持不变,仍指向相应虚拟路径。
可以看出,本发明实施例所提供的Web代理服务器10能够有效、快捷、方便的建立和查找虚实路径映射表。
特别是,为了避免对已经失效的资源ID再进行引用,第二报文改写模块1052还包括:
资源ID比较子模块,设置在主索引字段匹配子模块和子索引字段识别子模块之间,用于根据主索引字段匹配子模块匹配成功的触发,进行指定格式域名虚拟URL的资源ID与资源ID项中保存的资源ID的比较,并在失效标识字段一致的情况下触发所述子索引字段识别子模块。
虽然已参照几个典型实施例描述了本发明,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本发明能够以多种形式具体实施而不脱离发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。
Claims (17)
1.一种远程访问内网Web服务器的方法,适用于通过双向URL改写为处在外网的用户端提供远程访问处在内网的Web服务器功能的Web代理服务器;其特征在于,该Web代理服务器执行以下步骤:
S1、对于所述Web服务器发送给所述用户端的第一报文,对其所包含的完全路径进行初始定向获得链接;
S2、对于所述用户端发送给所述Web服务器的第二报文,对其所请求的链接加以识别;
如果所述链接指向包括指定格式域名虚拟URL的虚拟路径,则按照虚实路径映射表改写所述虚拟路径为包括域名真实URL的完全路径;其中,所述虚实路径映射表在初始化时添加每一所述Web服务器主域名的映射表项,将所述主域名映射为指定格式的域名虚拟URL,所述映射表项包括域名真实URL和映射为指定格式的域名虚拟URL,且所述域名虚拟URL和域名真实URL一一对应;
如果所述链接为初始定向的完全路径,则从中提取相应的域名并识别其是否存在于所述虚实路径映射表中;
是则,提取虚实路径映射表中匹配的域名虚拟URL改写所述完全路径为虚拟路径,并进行所述用户端到所述虚拟路径的重定向;
否则,所述域名为子域名,则根据预先设置的模糊匹配策略将所述子域名与主域名进行匹配,在匹配的情况下将所述子域名映射为指定格式的域名虚拟URL并用其改写所述完全路径为虚拟路径,进行所述用户端到所述虚拟路径的重定向,以及,添加相应的子域名映射表项到虚实路径映射表中。
2.根据权利要求1所述的远程访问内网Web服务器的方法,其特征在于,所述将主域名或子域名映射为指定格式的域名虚拟URL的步骤包括:
为所述主域名或子域名分配资源ID,所述资源ID与所述主域名或子域名唯一对应;
将所述分配的资源ID映射到Web代理服务器指定目录下。
3.根据权利要求2所述的远程访问内网Web服务器的方法,其特征在于,所述资源ID为数字ID。
4.根据权利要求2所述的远程访问内网Web服务器的方法,其特征在于,所述为主域名或子域名分配资源ID的步骤包括:
至少为所述主域名或子域名分配主索引字段和子索引字段;其中,为不同Web服务器的主域名资源ID分配不同的主索引字段,为同一Web服务器的子域名资源ID分配与其主域名相同的主索引字段和不同的子索引字段;
和/或
还包括为所述主域名或子域名分配失效标识字段;其中,随机赋值所述主域名资源ID的失效标识字段,按照其主域名资源ID的失效标识字段赋值所述子域名资源ID的失效标识字段。
5.根据权利要求4所述的远程访问内网Web服务器的方法,其特征在于,所述步骤S2中添加主域名映射表项到虚实路径映射表中的步骤包括:
以二维表的形式建立上级虚实路径映射表,每一二维表项作为一主域名表项,用于记录一主域名的URL映射,其中,每一主域名表项包括主索引项、资源ID项、域名虚拟URL项、域名真实URL项和关联指针项;
将所述主域名对应的主索引字段、资源ID、域名虚拟URL和域名真实URL相应添加到主索引项、资源ID项、域名虚拟URL项、域名真实URL项中;
所述步骤S2中添加相应的子域名映射表项到虚实路径映射表中的步骤包括:
识别相应主域名表项是否关联有下级虚实路径映射表;
如果未关联,则以二维表的形式建立下级虚实路径映射表,每一二维表项作为一子域名表项,用于记录一子域名的URL映射,其中,每一子域名表项包括子索引项、域名虚拟URL项和域名真实URL项;
将所述子域名对映的子索引字段、域名虚拟URL和域名真实URL相应添加到子索引项、域名虚拟URL项和域名真实URL项;
以及,将所述下级虚实路径映射表通过指针关联到上级虚实路径映射表中相应的关联指针项;
如果已关联,则直接在所关联的下级虚实路径映射表中添加所述子域名表项。
6.根据权利要求5所述的远程访问内网Web服务器的方法,其特征在于,
所述步骤S2中按照所述虚实路径映射表改写虚拟路径为包括域名真实URL的完全路径的步骤包括:
S221、从所述虚拟路径所包含的域名虚拟URL中提取资源ID;
S222、根据该资源ID的主索引字段在所述上级虚实路径映射表的主索引项中执行匹配;匹配成功,则执行步骤S223,否则拒绝访问;
S223、识别所述虚拟URL的子索引字段是否为保留字段,是则执行步骤S224,否则执行步骤S225;
S224、调用所述主索引项相应的域名真实URL项,用所述域名真实URL进行所述虚拟路径中指定格式的域名虚拟URL的改写;
S225、根据所述虚拟URL的子索引字段在所关联的下级虚实路径映射表的子索引项中执行匹配,匹配成功,则执行步骤S226,否则拒绝访问;
S226、调用所述子索引项相应的域名真实URL项,用所述域名真实URL进行虚拟路径中指定格式的域名虚拟URL的改写。
7.根据权利要求6所述的远程访问内网Web服务器的方法,其特征在于,所述步骤S223之前还包括:
比较域名虚拟URL的资源ID与资源ID项中保存的资源ID,如果失效标识字段一致则继续执行步骤S223,否则拒绝访问。
8.根据权利要求1-4任一所述的远程访问内网Web服务器的方法,其特征在于,所述步骤S1包括:
解析所述第一报文;
将所述第一报文所包含的完全路径改写为专有函数的参数,所述专有函数用于根据所述预先设置的模糊匹配策略进行子域名与Web服务器主域名的匹配;
识别所包含的不完全路径,在不完全的绝对路径之前添加相应的域名虚拟URL,保持不完全的相对路径不变。
9.根据权利要求1-4任一所述的远程访问内网Web服务器的方法,其特征在于,所述步骤S2中进行用户端到虚拟路径重定向的步骤包括:向用户端发送重定向报文,该报文携带包括所映射的指定格式域名虚拟URL的虚拟路径。
10.一种Web代理服务器,用于通过双向URL改写为处在外网的用户端提供远程访问处在内网的Web服务器的功能;其特征在于,包括:
主域名保存单元,用于保存所指定的每一所述Web服务器的主域名;
策略保存单元,用于保存预先设置的所述Web服务器子域名的模糊匹配策略;
映射单元,用于将域名映射为指定格式的域名虚拟URL;其中,所述映射单元与所述主域名保存单元连接,用于在初始化阶段将所述指定的主域名映射为指定格式的域名虚拟URL;
虚实路径映射表单元,与所述映射单元连接,用于保存映射后的表项;其中,所述表项包括一一对应的域名虚拟URL和域名真实URL;
URL改写单元,与所述虚实路径映射表单元连接,用于识别接收到的报文;
对于所述Web服务器发送给所述用户端的第一报文,对其所包含的完全路径触发初始定向单元;
对于所述用户端发送给所述Web服务器的第二报文,对其所请求的链接加以识别;如果所述链接指向包括指定格式域名虚拟URL的虚拟路径,则按照所述虚实路径映射表单元改写所述虚拟路径为包括域名真实URL的完全路径;如果所述链接为初始定向的完全路径,则从中提取相应的域名并识别其是否存在于所述虚实路径映射表单元中;是则,触发重定向单元,否则,所述域名为子域名,触发模糊匹配单元;
初始定向单元,与所述URL改写单元连接,用于对所述完全路径进行初始定向;
重定向单元,接受所述URL改写单元的触发和所述映射单元将子域名映射为指定格式的域名虚拟URL时的触发,用于提取虚实路径映射表中匹配的域名虚拟URL改写所述完全路径为虚拟路径,并进行所述用户端到所述虚拟路径的重定向;
模糊匹配单元,与所述URL改写单元和策略保存单元连接,用于接受所述URL改写单元的触发,根据所述预先设置的模糊匹配策略将所述子域名与主域名进行匹配,匹配成功则触发所述映射单元将所述子域名映射为指定格式的域名虚拟URL。
11.根据权利要求10所述的Web代理服务器,其特征在于,所述映射单元包括:
资源ID分配模块,用于为所述主域名或子域名分配资源ID,所述资源ID与所述主域名或子域名唯一对应;
资源ID映射模块,用于将所述分配的资源ID映射到所述Web代理服务器的指定目录下。
12.根据权利要求11所述的Web代理服务器,其特征在于,所述资源ID分配模块至少包括:
主索引字段分配子模块,用于为所述主域名或子域名分配主索引字段,其中,为不同Web服务器的主域名资源ID分配不同的主索引字段,为同一Web服务器的子域名资源ID分配与其主域名相同的主索引字段;
子索引字段分配子模块,用于为所述主域名或子域名分配子索引字段;其中,为同一Web服务器的子域名资源ID分配不同的子索引字段;
还包括:
失效标识字段分配子模块,用于为所述主域名或子域名分配失效标识字段;其中,随机赋值所述主域名资源ID的失效标识字段,按照其主域名资源ID的失效标识字段赋值所述子域名资源ID的失效标识字段。
13.根据权利要求10-12任一所述的Web代理服务器,其特征在于,所述虚实路径映射表单元包括:
二维表形式的上级虚实路径映射表,每一二维表项作为一主域名表项,用于记录一主域名的URL映射;其中,每一主域名表项包括主索引项、资源ID项、域名虚拟URL项、域名真实URL项和关联指针项,用于相应添加主索引字段、资源ID、域名虚拟URL和域名真实URL和所关联的到下级虚实路径映射表的指针;
二维表形式的下级虚实路径映射表,通过指针关联到上级虚实路径映射表中相应的关联指针项,且每一二维表项作为一子域名表项,用于记录一子域名的URL映射;其中,每一子域名表项包括子索引项、域名虚拟URL项和域名真实URL项,用于相应添加子索引字段、域名虚拟URL和域名真实URL。
14.根据权利要求13所述的Web代理服务器,其特征在于,所述URL改写单元包括:
报文识别模块,用于识别接收到的报文,为用户端发送的第二报文则触发第二报文改写模块,为Web服务器发送的第一报文则触发第一报文改写模块;
第一报文改写模块,包括:
报文解析子模块,用于解析接收到的第一报文,对于其中的不完全路径触发不完全URL改写子模块,对于其中的完全路径触发初始定向单元;
不完全URL改写子模块,用于识别所述不完全路径,对于不完全的绝对路径,添加相应的虚拟URL改写为虚拟路径;对于不完全的相对路径保持不变,仍指向相应虚拟路径;
第二报文改写模块,与所述上、下级虚实路径映射表连接,包括:
链接识别子模块,用于识别所述第二报文请求的链接,如果指向包括指定格式域名虚拟URL的虚拟路径,则触发主索引字段匹配子模块;如果为初始定向的完全路径,则触发子域名识别单元;
主索引字段匹配子模块,用于根据指定格式的域名虚拟URL的主索引字段在上级虚实路径映射表的主索引项中执行匹配;
子索引字段识别子模块,用于根据所述主索引字段匹配子模块匹配成功的触发,进行指定格式的域名虚拟URL的子索引字段的识别;
子索引字段匹配子模块,用于根据子索引字段为非保留字段的情况下所述子索引字段识别子模块的触发,根据域名虚拟URL的子索引字段在下级虚实路径映射表的子索引项中执行匹配;
虚拟URL改写子模块,用于根据子索引字段为保留字段的情况下所述子索引字段识别子模块的触发,以及根据所述子索引字段匹配子模块匹配成功的触发,调用匹配成功的相应域名真实URL项,将所述虚拟路径中指定格式的域名虚拟URL部分改写为所述域名真实URL;
子域名识别子模块,用于从所述初始定向完全路径中提取相应的子域名并识别其是否存在于所述上、下级虚实路径映射表中,是则触发重定向单元,否则触发模糊匹配单元。
15.根据权利要求14所述的Web代理服务器,其特征在于,所述第二报文改写模块还包括:
资源ID比较子模块,设置在所述主索引字段匹配子模块和子索引字段识别子模块之间,用于根据所述主索引字段匹配子模块匹配成功的触发,进行指定格式域名虚拟URL的资源ID与资源ID项中保存的资源ID的比较,并在失效标识字段一致的情况下触发所述子索引字段识别子模块。
16.根据权利要求10-12任一所述的Web代理服务器,其特征在于,所述模糊匹配单元为通用网关接口CGI,用于根据所述模糊匹配策略进行子域名与Web服务器主域名的匹配;所述初始定向单元用于将所述完全路径改写为CGI的参数。
17.根据权利要求10-12任一所述的Web代理服务器,其特征在于,所述Web代理服务器为SSL VPN网关,所述SSL VPN网关与处在外网的用户端建立SSL连接,与处在内网的Web服务器建立TCP连接,且所述第一报文为HTTP报文,所述第二报文为HTTPs报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100850176A CN101242336B (zh) | 2008-03-13 | 2008-03-13 | 远程访问内网Web服务器的方法及Web代理服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100850176A CN101242336B (zh) | 2008-03-13 | 2008-03-13 | 远程访问内网Web服务器的方法及Web代理服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101242336A CN101242336A (zh) | 2008-08-13 |
CN101242336B true CN101242336B (zh) | 2010-12-01 |
Family
ID=39933556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100850176A Active CN101242336B (zh) | 2008-03-13 | 2008-03-13 | 远程访问内网Web服务器的方法及Web代理服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101242336B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4191955A4 (en) * | 2020-09-16 | 2024-01-17 | Xiamen Wangsu Co., Ltd. | METHOD AND DEVICE FOR SECURE ACCESS TO AN INTRANET APPLICATION |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2166701A1 (en) * | 2008-09-18 | 2010-03-24 | Thomson Telecom Belgium | Device and method for retrieving information from a device |
CN102130791B (zh) * | 2010-01-14 | 2013-02-13 | 深圳市深信服电子科技有限公司 | 一种在网关上检测代理的方法、装置及网关服务器 |
US8484287B2 (en) * | 2010-08-05 | 2013-07-09 | Citrix Systems, Inc. | Systems and methods for cookie proxy jar management across cores in a multi-core system |
CN102035904B (zh) * | 2010-12-10 | 2013-04-03 | 北京中科大洋科技发展股份有限公司 | 一种将tcp网络通信服务端转换为客户端的方法 |
CN102130952B (zh) * | 2011-03-16 | 2013-11-20 | 广州市动景计算机科技有限公司 | 用于转发移动终端的http请求消息的方法及装置 |
CN103067417B (zh) * | 2011-10-19 | 2016-04-13 | 华耀(中国)科技有限公司 | VPN中安全代理的Web服务映射方法及其系统 |
CN102546594B (zh) * | 2011-12-07 | 2014-07-02 | 北京星网锐捷网络技术有限公司 | 一种网络资源访问控制方法、装置及相关设备 |
CN102651017A (zh) * | 2012-03-30 | 2012-08-29 | 北京英富森信息技术有限公司 | 一种基于url地址改写的网页原版原貌展现方法 |
CN103634338B (zh) * | 2012-08-21 | 2017-04-12 | 北京亿赞普网络技术有限公司 | 在线修改网页主域标题的方法、数据处理装置和系统 |
CN102855334B (zh) * | 2012-09-29 | 2016-07-06 | 北京奇虎科技有限公司 | 一种浏览器及其获取dns解析数据的方法 |
CN102902787B (zh) * | 2012-09-29 | 2015-11-25 | 北京奇虎科技有限公司 | 一种浏览器及其获取dns解析数据的方法 |
CN103260260B (zh) * | 2013-05-28 | 2015-10-21 | 华为数字技术(苏州)有限公司 | 一种移动设备访问网络的方法和相关装置及系统 |
CN103384274B (zh) * | 2013-07-15 | 2016-08-10 | 浙江大学 | 基于http协议的公网连接内网计算机的通信方法 |
CN103685597B (zh) * | 2013-12-02 | 2017-01-11 | 北京星网锐捷网络技术有限公司 | 内网地址记录方法及装置 |
CN104065736B (zh) * | 2014-07-03 | 2017-11-28 | 车智互联(北京)科技有限公司 | 一种url重定向方法、装置及系统 |
CN104268289B (zh) * | 2014-10-21 | 2017-12-12 | 中国建设银行股份有限公司 | 链接url的失效检测方法和装置 |
CN104363235A (zh) * | 2014-11-20 | 2015-02-18 | 成都博高科技有限责任公司 | 一种通信方法、装置、系统及通信通道建立方法和装置 |
CN104506490A (zh) * | 2014-11-27 | 2015-04-08 | 北京极科极客科技有限公司 | 一种路由器内核下的代理方法及装置 |
CN106485143A (zh) * | 2015-10-29 | 2017-03-08 | 远江盛邦(北京)网络安全科技股份有限公司 | 基于url多样变化的反扫描检测方法及系统 |
CN105516148B (zh) * | 2015-12-14 | 2018-06-12 | 北京奇虎科技有限公司 | 终端访问服务器的方法和装置 |
CN106789993B (zh) * | 2016-12-09 | 2019-06-14 | 锐捷网络股份有限公司 | Tcp代理方法及装置 |
CN106603728B (zh) * | 2017-02-11 | 2020-03-31 | 网宿科技股份有限公司 | Https加速方法和系统、数据中心、节点服务云端 |
CN107317845A (zh) * | 2017-06-07 | 2017-11-03 | 北京星网锐捷网络技术有限公司 | 基于Web代理的数据获取方法及装置 |
CN107277026A (zh) * | 2017-06-29 | 2017-10-20 | 福建天泉教育科技有限公司 | 一种内网访问方法及终端 |
CN108933846B (zh) * | 2018-06-21 | 2021-08-27 | 北京谷安天下科技有限公司 | 一种泛解析域名的识别方法、装置及电子设备 |
CN109067914B (zh) * | 2018-09-20 | 2019-12-13 | 星环信息科技(上海)有限公司 | Web服务的代理方法、装置、设备及存储介质 |
CN111224918A (zh) * | 2018-11-23 | 2020-06-02 | 中国移动通信集团广东有限公司 | 实联网安全控制平台和接入认证方法 |
CN109561102A (zh) * | 2018-12-26 | 2019-04-02 | 国网思极网安科技(北京)有限公司 | 针对自动化攻击的url虚拟化动态防御方法 |
CN109815263B (zh) * | 2019-01-04 | 2021-10-26 | 烽火通信科技股份有限公司 | 一种模糊查找的数据流识别方法及系统 |
CN110278181B (zh) * | 2019-01-29 | 2021-09-17 | 广州金越软件技术有限公司 | 一种关于跨网数据交换的即时协议转换系统 |
CN110493337A (zh) * | 2019-08-16 | 2019-11-22 | 武汉麦品科技有限公司 | 数据访问方法、网关设备、系统、存储介质及装置 |
CN110855766A (zh) * | 2019-11-06 | 2020-02-28 | 北京天融信网络安全技术有限公司 | 一种访问Web资源的方法、装置及代理服务器 |
CN111901218A (zh) * | 2020-06-23 | 2020-11-06 | 北京天融信网络安全技术有限公司 | 报文传输方法、sslvpn代理服务器、电子设备以及存储介质 |
CN112260991B (zh) * | 2020-09-16 | 2023-08-22 | 厦门网宿有限公司 | 一种鉴权管理方法和装置 |
CN112272158A (zh) * | 2020-09-16 | 2021-01-26 | 厦门网宿有限公司 | 一种数据代理方法、系统及代理服务器 |
CN112954001B (zh) * | 2021-01-18 | 2022-02-15 | 武汉绿色网络信息服务有限责任公司 | 一种http转https双向透明代理的方法和装置 |
CN112714194B (zh) * | 2021-03-26 | 2021-06-18 | 南京美乐威电子科技有限公司 | 一种外网主机访问内网设备的方法和网络拓扑结构 |
CN113179251B (zh) * | 2021-03-29 | 2022-05-27 | 新华三信息安全技术有限公司 | 一种前端文件处理方法、装置、设备及机器可读存储介质 |
CN113242329B (zh) * | 2021-04-30 | 2022-03-18 | 平安证券股份有限公司 | 基于模糊匹配的映射关系发送方法、装置和计算机设备 |
CN113194099B (zh) * | 2021-04-30 | 2023-04-18 | 网宿科技股份有限公司 | 一种数据代理方法及代理服务器 |
CN113791786B (zh) * | 2021-09-23 | 2024-01-19 | 安然 | 基于ios系统的app页面控件自动化方法及装置 |
CN115396398B (zh) * | 2022-07-29 | 2024-04-26 | 中国电信股份有限公司 | 衍生域名访问方法、系统、设备、存储介质及程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1738255A (zh) * | 2004-08-17 | 2006-02-22 | 迈普(四川)通信技术有限公司 | 访问控制方法及安全代理服务器 |
CN1781087A (zh) * | 2003-04-08 | 2006-05-31 | 丛林网络公司 | 安全访问带有客户端接收的专用网的方法和系统 |
CN101132420A (zh) * | 2007-10-16 | 2008-02-27 | 杭州华三通信技术有限公司 | 一种基于ssl vpn的链接改写方法和设备 |
CN101136834A (zh) * | 2007-10-19 | 2008-03-05 | 杭州华三通信技术有限公司 | 一种基于ssl vpn的链接改写方法和设备 |
-
2008
- 2008-03-13 CN CN2008100850176A patent/CN101242336B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1781087A (zh) * | 2003-04-08 | 2006-05-31 | 丛林网络公司 | 安全访问带有客户端接收的专用网的方法和系统 |
CN1738255A (zh) * | 2004-08-17 | 2006-02-22 | 迈普(四川)通信技术有限公司 | 访问控制方法及安全代理服务器 |
CN101132420A (zh) * | 2007-10-16 | 2008-02-27 | 杭州华三通信技术有限公司 | 一种基于ssl vpn的链接改写方法和设备 |
CN101136834A (zh) * | 2007-10-19 | 2008-03-05 | 杭州华三通信技术有限公司 | 一种基于ssl vpn的链接改写方法和设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4191955A4 (en) * | 2020-09-16 | 2024-01-17 | Xiamen Wangsu Co., Ltd. | METHOD AND DEVICE FOR SECURE ACCESS TO AN INTRANET APPLICATION |
Also Published As
Publication number | Publication date |
---|---|
CN101242336A (zh) | 2008-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101242336B (zh) | 远程访问内网Web服务器的方法及Web代理服务器 | |
CN101132420B (zh) | 一种基于ssl vpn的链接改写方法和设备 | |
CN100508518C (zh) | 网络系统、反向代理装置、计算机设备以及数据处理方法 | |
JP3807961B2 (ja) | セッション管理方法、セッション管理システムおよびプログラム | |
US7584500B2 (en) | Pre-fetching secure content using proxy architecture | |
CN100390787C (zh) | 用于处理可扩展标示语言(xml)文档的系统和方法 | |
KR100552554B1 (ko) | 정보 데이터 리퀘스트 수행 방법, 시스템 및 컴퓨터 판독가능한 기록 매체 | |
US9219705B2 (en) | Scaling network services using DNS | |
US7085817B1 (en) | Method and system for modifying requests for remote resources | |
KR100693196B1 (ko) | 스마트 카드와 함께 작동하는 “웹” 브라우저를 이용하여 오브젝트에 접근하기 위한 시스템 | |
EP3734933B1 (en) | Resource acquisition method, server and storage medium | |
CN102577237B (zh) | 网站托管服务调度方法、应用访问处理方法、装置及系统 | |
US20080086540A1 (en) | Method and system for executing a normally online application in an offline mode | |
EA002411B1 (ru) | Система и способ использования администратора данных рабочей области для доступа, обработки и синхронизации сетевых данных | |
CN102929985A (zh) | 一种收藏网页展示的方法和系统 | |
CN101136834A (zh) | 一种基于ssl vpn的链接改写方法和设备 | |
US20120096067A1 (en) | Web system, instruction-receiving system and contents data providing method | |
CN103248641A (zh) | 网络下载方法、装置及系统 | |
KR20070001973A (ko) | 클라이언트 측 통신 프로토콜 스택 구성 방법, 프로세스 간통신 프로토콜 구성 시스템 및 머신 판독가능한 저장 장치 | |
US8655946B2 (en) | Authenticating method, conversion device, and relay device | |
CN102937981A (zh) | 网页呈现系统和方法 | |
JP5347429B2 (ja) | ユニフォームリソースロケータ書換方法及び装置 | |
JP2003162449A (ja) | アクセス統合管理システム、アクセス統合管理装置及び方法並びにプログラム | |
EP1052827A2 (en) | Dynamic resource modification in a communication network | |
CN115270020A (zh) | 一种多个设备访问浏览器的优化方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CP03 | Change of name, title or address |