CN101136834B - 一种基于ssl vpn的链接改写方法和设备 - Google Patents

一种基于ssl vpn的链接改写方法和设备 Download PDF

Info

Publication number
CN101136834B
CN101136834B CN2007101632225A CN200710163222A CN101136834B CN 101136834 B CN101136834 B CN 101136834B CN 2007101632225 A CN2007101632225 A CN 2007101632225A CN 200710163222 A CN200710163222 A CN 200710163222A CN 101136834 B CN101136834 B CN 101136834B
Authority
CN
China
Prior art keywords
link
path
request
ssl vpn
gateway
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
Application number
CN2007101632225A
Other languages
English (en)
Other versions
CN101136834A (zh
Inventor
薛明
梁鹏
韩小平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN2007101632225A priority Critical patent/CN101136834B/zh
Publication of CN101136834A publication Critical patent/CN101136834A/zh
Application granted granted Critical
Publication of CN101136834B publication Critical patent/CN101136834B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于SSL VPN的链接改写方法,包括以下步骤:SSLVPN网关接收到远程主机访问不完全绝对链接的请求;所述SSL VPN网关对所述不完全绝对链接进行改写;所述SSL VPN网关向所述远程主机发送包括所述改写后的不完全绝对链接的重定向页面。本发明还公开了一种SSL VPN网关设备。通过使用本发明,使得在向远程主机返回的“不完全绝对链接”未能改写的情况下,SSL VPN网关依然可以引导浏览器获取到正确的页面。从而降低了SSL VPN网关对web页面语言进行解析的强度,降低了产品开发和维护难度,使得SSL VPN网关有了更强的容错能力。

Description

一种基于SSL VPN的链接改写方法和设备
技术领域
本发明涉及网络技术领域,尤其涉及一种基于SSL VPN的链接改写方法和设备。
背景技术
SSL VPN是一种采用SSL(Security Socket Layer,安全套接层)加密连接实现远程访问的VPN(Virtual Private Network,虚拟专用网络)技术。SSLVPN的功能如图1所示。其中,
远程主机与SSL VPN网关之间建立SSL连接,以加密方式在Internet上传送报文;而SSL VPN网关终结了SSL连接,与内网的服务器之间建立TCP(Transmission Control Protocol,传输控制协议)连接,以明文方式传送远程主机发来的请求,并将服务器的应答通过SSL连接发给远程主机。
页面中URL链接类型包括:
(1)完全链接。
完全链接是指链接中包含协议、主机名和路径的链接,例如:
<a href=″http://www.h3c.com/tech/index.htm″>
该语句表示:传输协议为http,主机为www.h3c.com,路径和页面为/tech/index.htm。
通过该完全链接包含了所要访问的主机地址,点击这样的链接,浏览器将会与指定的主机www.h3c.com建立新的连接,并向主机请求相应的页面。
(2)不完全的绝对链接。
不完全的绝对链接是指链接中不包含传输协议和主机地址,只包含相对于本网站根目录的绝对路径。
例如:<a href=″/portal/Home/Login″>
注:路径开头的“/”表示根目录。
不完全的绝对链接中没有指定传输协议,浏览器就默认为使用当前网页的传输协议。如果当前网页使用http协议,则访问该链接还使用http协议;如果当前网页使用https协议,则访问该链接还使用https协议。
另外,不完全的绝对链接也没有指定目的主机,浏览器就默认为使用当前页面的源主机。对此链接的访问,将向当前页面的源主机发起连接。链接中只说明了所要访问的目录和页面,为“/portal/Home/Login”。
(3)不完全的相对链接。
不完全的相对链接与上述不完全的绝对链接类似,链接中不包含传输协议和主机地址,区别在于所包含的路径不是网站的根目录,而是相对于当前网页的路径。
例如:<a href=″../Login″>
注:路径开头的“..”表示当前页面的父目录。
此例中,如果当前页面的路径为“/portal/Home/index.htm”,则“../Login”表示的路径就是“/portal/Home/Login”。
当所访问的内网服务器是Web服务器时,SSL VPN可以采用Web代理的方式实现远程主机对内网Web站点的访问。其过程如图2所示。其中,图中的方框表示返回的报文;WS1表示Web server1的IP地址;在SSL VPN网关上,假设将所有的连接都映射到“/svpn/”目录下。
如图2所示,以Web代理方式访问内网Web站点的过程如下:
步骤s201、SSL VPN网关将每个可以访问的内网web资源地址映射为一条SSL VPN网关上的虚拟路径。由SSL VPN网关维护着类似如下形式的映射表:
/svpn/web1/
Figure G2007101632225D00021
http://www.abc.com/xyz/
/svpn/web2/
Figure G2007101632225D00022
http://www.efg.com/xyz/uvw/
/svpn/web3/http://www.abc.com/hij/rst/
该表以下简称为“虚实路径映射表”。
步骤s202、用户通过Web浏览器,使用https协议登录SSL VPN网关,获得一张可以访问的web站点的列表。
列表中的链接都指向该资源所对应的SSL VPN虚拟网关路径。例如:
<a href=″/svpn/web 1/″>
<a href=″/svpn/web2/″>
<a href=″/svpn/web3/″>
步骤s203、用户点击这些链接,远程主机将与SSL VPN网关建立SSL链接,并发出一个指向虚拟路径的Http请求,例如:
GET/svpn/web1/HTTP/1.1
Host:x.x.x.x
其中“x.x.x.x”是SSL VPN网关的地址或域名,GET后面跟的是Web页面所在的路径。“HTTP/1.1”是协议的版本。Http请求中的其它字段与SSL VPN网关的工作过程无关,在此不进行介绍。
远程主机只能发请求给SSL VPN网关,因为只有该设备有公网地址,内网服务器没有公网地址,远程主机无法直接访问。
步骤s204、SSL VPN网关终结SSL连接,转换Http请求,
SSL VPN网关根据虚实路径映射表,可找到虚拟路径所对应的真实URL,修改http请求中相关的字段,再进行转发。例如将步骤s203中的请求修改为:
GET/xyz/HTTP/1.1
Host:www.abc.com
转换过的请求将发往服务器“www.abc.com”,请求“/xyz/”目录下的页面。
步骤s205、Web Server 1向SSL VPN网关返回应答的页面。
页面中包含着如下形式的链接:(html页面中表示链接的形式有很多,以下仅以href字段为例)
a)<a href=″http://www.abc.com/xyz/123/a.htm″>
b)<a href=″http://www.efg.com/xyz/uvw/456/b.htm″>
c)<a href=″http://www.abc.com/hij/rst/″>
d)<a href=″/abc/789.htm″>
e)<a href=″/abc/efg/lmn.htm″>
f)<a href=″../uvw/opq.htm″>
链接a)、b)和c)为“完全链接”,指向的都是内网服务器地址,这样的链接在外网无法访问。
链接d)和e)为“不完全的绝对路径”,指向的是原服务器上的一个固定目录。这些目录不是SSL VPN网关上的虚拟目录,如果用户直接向网关请求这样路径,SSL VPN网关无法找到对应的内网资源,因而不能正确处理。
链接f)为“不完全的相对路径”,不用改写,该链接指向的是相对于当前网页的相对路径。如果当前路径是正确的SSL VPN网关上的虚拟路径,则该路径指向的仍然是一条SSL VPN网关上的虚拟路径。
步骤s206、根据映射表,SSL VPN网关对内网返回的页面进行URL改写,使得原来的http链接变成https链接,使得原来指向内网服务器的链接都映射为SSL VPN网关上的路径。步骤s205中所述页面的链接应该被改写成以下形式:
a)<a href=″/svpn/web 1/123/a.htm″>
b)<a href=″/svpn/web2/456/b.htm″>
c)<a href=″/svpn/web3/″>
d)<a href=″/svpn/web1/abc/789.htm″>
e)<a href=″/svpn/web1/abc/efg/lmn.htm″>
f)<a href=″../uvw/opq.htm″>
链接a)、b)、c)根据“虚实路径映射表”将链接对应的目录替换为SSL VPN网关上的虚拟路径。这里将原来的“完全链接”改写“不完全链接”,使得该链接继承了当前页面的传输协议类型,从而实现了由http向https的转变。
链接d)、e)则是根据内网服务器的地址,确定其对应的虚拟路径根目录为“/svpn/web1/”,而进行的改写。
链接f)没有修改。
步骤s207、SSL VPN网关将改写后的页面返回给远程主机。
在上述实现过程中,URL改写是关键的。SSL VPN网关必须要将内网返回页面中的URL链接进行改写,使其指向SSL VPN网关,并且将传输协议由http变为https。否则在外网的用户无法通过SSL VPN网关获取内网的页面。
目前Web页面大多是动态生成的,页面上的很多链接是采用javascript的表达式拼接而成的,很难采用模式匹配的办法直接查找替换。因而URL改写实现起来是很困难的。
对于“完全链接”,如果此类链接没有被改写,用户点击后,浏览器将与“www.abc.com”这样的主机直接建立链接,该地址为内网服务器地址,因而是访问不到的。对于这样的问题,SSL VPN网关没有任何补救的措施。
对于“不完全的相对链接”,不需要进行改写。
对于“不完全的绝对链接”,用户点击这些链接时,仍然会向SSL VPN网关发起请求,SSL VPN网关虽然不能找到对应的虚拟路径,但是可以根据某种机制给予修正,并向用户的浏览器发出重定向报文,引导浏览器访问到正确的路径。
目前绝大多数SSL VPN产品都采用语法解析的办法,对html页面和javascript脚本进行语法解析,对所有涉及到URL链接的地方进行改写。但是由于html语言和javascript语言比较复杂,因此对html语言和javascript语言进行语法解析的难度较大,而且很难处理得完善。
例如,下面是一段内网服务器动态生成页面的脚本,用于向远程主机发送:
    <body onload=″refreshMainFrame();″leftmargin=″2″>
      <div><code>
      <script type=″text/javascript″>
         <!--
         infoTree=new dTree(′infoTree′);
         infoTree.config.useCookies=false;
             var menuCode=″IPD″;
             if(menuCode==′RND-005-001′||menuCode==′RND-006-001′||
menuCode==′RND-006-002′       ||     menuCode==′RND-007-001′    ||
menuCode==′RND-008-001′)
{
    info Tree.add(0,
    -1,
    ′IPD  ′,
    ′/jsp/process/outline.do?param=IPD′,
    null,
    ″leftFrame″);
  }
  else
  {
   infoTree.add(0,
   -1,
   ′IPD  ′,
   ′/jsp/process/outline.do?param=IPD′,
   null,
   ″mainFrame″);
}
所谓动态页面是指通过浏览器执行脚本而生成的页面。上述脚本中,infoTree.add()是用户自定义的脚本函数,可以动态生成菜单项,因而菜单项所指向的链接也是动态生成的,例如上述页面的脚本中所包括的′/jsp/process/outline.do?param=IPD′即为动态生成的不完全绝对链接。。
这样的页面经过SSL VPN网关时,SSL VPN网关无法根据html语法识别出链接在哪里,例如上面的例子中的′/jsp/process/outline.do?param=IPD′即为菜单项的链接,这些链接作为infoTree.add( )参数,不是标准的html页面元素或属性。因而SSL VPN网关对此类动态生成的页面进行的URL改写非常困难。另外,由于Web技术发展得很快,不断产生新的标准和新的页面元素,使得html和javascript语言不断地在变化,这就要求SSL VPN网关的实现版本不断地升级。
基于上述分析,SSL VPN网关对于某些向远程主机发送的页面中的不完全绝对链接,无法根据语法解析以及网关上的虚实路径映射表进行有效的改写,因此会导致远程主机试图访问页面上的这些没有被有效改写的链接时,无法找到有效的链接从而获取正确的内容。
发明内容
本发明提供一种基于SSL VPN的链接改写方法和设备,用于在远程主机请求访问内网服务器返回的未能正确改写的“不完全绝对链接”时,确保远程主机仍可以获取到正确的页面。
为达到上述目的,本发明提供一种基于SSL VPN的链接改写方法,包括以下步骤:
SSL VPN网关接收到远程主机访问不完全绝对链接的请求,所述不完全绝对链接为之前在经过SSL VPN网关时未能有效改写的链接;
所述SSL VPN网关对所述不完全绝对链接进行改写,具体的,所述SSLVPN网关判断所述远程主机访问不完全绝对链接的请求中是否存在Referer字段;
当判断结果为是时,所述SSL VPN网关获取所述请求的Referer字段携带的虚拟网关路径,判断所述Referer字段携带的虚拟网关路径是否正确,正确时使用所述Referer字段携带的虚拟网关路径替换所述请求中对应的路径;
当判断结果为否时,所述SSL VPN网关利用预先保存的与所述请求的SSL链接关联的虚拟网关路径,获取与所述请求对应的虚拟网关路径,利用所述虚拟网关路径替换所述请求中对应的路径;
所述SSL VPN网关向所述远程主机发送包括所述改写后的不完全绝对链接的重定向页面。
其中,所述SSL VPN网关接收到远程主机访问不完全绝对链接的请求的步骤前还包括:
所述SSL VPN网关根据本地的虚拟网关路径与内网服务器资源的对应关系,无法对内网服务器向远程主机发送的不完全绝对链接进行改写时,直接将未改写的不完全绝对链接向所述远程主机发送;
所述SSL VPN网关接收到远程主机访问不完全绝对链接的请求具体为:
所述SSL VPN网关接收到所述远程主机访问所述未改写的不完全绝对链接的请求。
其中,所述判断所述Referer字段携带的虚拟网关路径是否正确的步骤具体为:
判断本地的虚拟网关路径与内网服务器资源的对应关系中,是否存在与Referer字段中的虚拟网关路径对应的虚拟网关路径,或是否存在与Referer字段中的虚拟网关路径对应的虚拟网关路径的上级目录,若是则继续;
判断所述请求的路径是否位于所述Referer字段中的虚拟网关路径对应的内网站点路径下,若是则判断为Referer字段携带的虚拟网关路径正确。
其中,所述利用预先保存的与此SSL链接关联的虚拟路径获取与所述请求对应的虚拟网关路径的步骤前还包括:
对于正确的页面请求,保存相应的虚拟网关路径,并且与接收所述请求的SSL链接相关联。
其中,所述重定向页面为包括所述改写后的不完全绝对链接的基于http协议307号应答报文,或基于http协议的重定向页面。
本发明还提供一种SSL VPN网关设备,用于对远程主机请求访问的不完全绝对链接进行改写,所述不完全绝对链接为之前在经过SSL VPN网关时未能有效改写的链接,包括:
远程主机接口,用于将远程主机访问不完全绝对链接的请求向链接改写单元发送;并将重定向报文生成单元生成的包括改写后的链接的重定向报文向所述远程主机发送;
链接改写单元,用于对从所述远程主机接口接收到的远程主机请求访问的不完全绝对链接进行改写,并将改写后的链接向重定向报文生成单元发送;
重定向报文生成单元,用于根据所述链接改写单元发送的改写后的链接生成重定向报文,并将所述重定向报文向远程主机接口发送;
所述链接改写单元进一步包括:判断子单元,用于判断所述远程主机接口发送的远程主机的请求中是否存在Referer字段,若存在则将所述请求发送到第一链接改写子单元;否则发送到第二链接改写子单元;第一链接改写子单元,用于使用请求中的所述Referer字段携带的虚拟网关路径替换所述请求中对应的路径;第二链接改写子单元,用于使用SSL链接关联存储子单元预先保存的与所述请求的SSL链接关联的虚拟网关路径,替换所述请求中对应的路径;SSL链接关联存储子单元,用于对于正确的页面请求,保存相应的虚拟网关路径,并且与接收所述请求的SSL链接相关联。
其中,还包括:
资源配置单元,用于建立虚拟网关路径以及内网服务器资源的对应关系,以供所述链接改写单元进行链接改写时使用。
与现有技术相比,本发明具有以下优点:
在远程主机请求访问之前SSL VPN网关返回的未能有效改写的“不完全绝对链接”的情况下,SSL VPN网关依然可以引导浏览器获取到正确的页面。从而降低了SSL VPN网关对web页面语言进行解析的强度,降低了产品开发和维护难度,使得SSL VPN网关有了更强的容错能力。
附图说明
图1是现有技术中SSL VPN的功能示意图;
图2是现有技术中Web代理与URL改写的示意图;
图3是本发明中一种基于SSL VPN的链接改写方法的流程图;
图4是本发明中根据Referer字段获得请求对应的虚拟网关路径的流程图;
图5是本发明中一种SSL VPN网关设备的结构示意图。
具体实施方式
本发明中的核心思想在于,提供一种基于SSL VPN的链接改写方法,根据请求消息中的相关内容,对远程主机请求访问的内网服务器返回的“不完全的绝对链接”进行改写,使得即使该“不完全的绝对链接”的链接之前由于某种原因没有被网关有效改写,也能最终向远程主机返回所请求访问的内容。
本发明一种基于SSL VPN的链接改写方法如图3所示,包括以下步骤:
步骤s301、SSL VPN网关接收到远程主机访问不完全绝对链接的请求。
具体的,该远程主机所请求访问不完全绝对链接为之前在经过SSL VPN网关时未能有效改写的链接,未能改写的原因可能如前文所述,导致SSL VPN网关无法根据本地的虚拟网关路径与内网服务器资源的对应关系对内网服务器向远程主机发送的不完全绝对链接进行改写。这时SSL VPN网关直接将该未改写的不完全绝对链接向远程主机发送。而远程主机在之后的操作中可能会访问这些之前在经过SSL VPN网关时未能有效改写的链接。
步骤s302、SSL VPN网关对不完全绝对链接进行改写。
该改写的方法可以有以下两种:
(1)如果请求头中有Referer字段,就从中提取出正确的网关虚拟路径,根据“虚实路径映射表”,替换掉原请求中对应的路径,从而生成正确的网关虚拟路径。
(2)如果http请求头中没有Referer字段,则将与此SSL链接关联的、前面保存过的、正确的网关虚拟路径作为本请求的网关虚拟路径,替换掉原请求中对应的路径,从而生成正确的网关虚拟路径。
步骤s303、SSL VPN网关向远程主机发送包括改写后的不完全绝对链接的重定向页面。
以下结合附图和实施例,对本发明的实施方式做进一步的详细说明。
首先对请求头中有Referer字段的情况进行说明。对于在请求头中包括Referer字段的http请求,可以从http请求头中的Referer字段中提取到正确的SSL VPN虚拟网关路径,再加上该http请求的路径,就可以获得该http请求对应的正确虚拟网关路径。根据Http协议,Referer字段记录的是本请求的链接源自的页面,该页面的访问路径应该是一个正确的SSL VPN虚拟网关路径,否则该页面就不可能被获取到。
本发明的实施例中,假设客户端向网关设备发送的http请求头格式如下:
GET/xyz/home/login/HTTP/1.1
Accept:*/*
Referer:https://x.x.x.x/svpn/web1/
Accept-Language:zh-cn
Accept-Encoding:gzip,deflate
User-Agent:Mozilla/4.0(compatible;MSIE 6.0;Windows NT 5.1;SV1;.NET CLR 1.1.4322)
Host:x.x.x.x
Connection:Keep-Alive
对于上述http请求,根据Referer字段获得该http请求对应的正确虚拟网关路径的方法如图4所示,包括以下步骤:
步骤s401、获取Referer字段携带的虚拟网关路径。
该http请求头中,Referer字段携带的虚拟网关路径为:“https://x.x.x.x/svpn/web1/”,其中x.x.x.x为SSL VPN网关的地址。
步骤s402、判断该Referer字段携带的虚拟网关路径是否正确,若正确则进行步骤s403,否则不进行任何操作。
具体的,判断从Referer字段中提取到的SSL VPN虚拟网关路径是否正确的实现方法有多种,以下仅举一例,说明其可行性。
例如,采用字符串最长匹配的方法,将Referer字段中的虚拟网关路径与“虚实路径映射表”中的虚拟路径相匹配,判断“虚实路径映射表”中是否存在与Referer字段中的虚拟网关路径对应的虚拟路径,或是否存在与Referer字段中的虚拟网关路径对应的虚拟路径的上级目录。如果找到,则认为Referer的路径正确,否则拒绝请求。
对于本实施例中的Referer字段“https://x.x.x.x/svpn/web1/”,假设可以在网关设备本地维护的“虚实路径映射表”中匹配到这样的表项:
/svpn/web1/http://www.abc.com/xyz/
则判断为Referer的虚拟网关路径正确。
步骤s403、获取该Referer字段携带的虚拟网关路径对应的站点路径。
本实施例中,根据“虚实路径映射表”,确定该http请求的源页面来自站点路径:http://www.abc.com/xyz/,即www.abc.com站点上的“/xyz/”目录。
步骤s404、判断http请求的路径是否位于该站点路径下,若是则进行步骤s405,否则不进行任何操作。
本实施例中的http请求的路径为“/xyz/home/login/”,在目的路径“/xyz”下,故位于Referer字段携带的路径对应的站点路径下。
步骤s405、利用Referer字段携带的虚拟网关路径替换http请求中对应的路径。
本实施例中,使用Referer字段携带的虚拟网关路径,替换http请求中对应的路径,即将“/xyz/home/login/”,替换得到了对应的虚拟网关路径:“/svpn/web1/home/login/”。
对于请求头中没有Referer字段的http请求,可以将与此SSL链接关联的、前面保存过的正确的虚拟网关路径作为本http请求的虚拟网关路径,采用与步骤s401~s405类似的方法,生成正确的虚拟网关路径。
具体的,对于html页面内嵌的图片或视频等链接,浏览器在打开页面时,会自动下载这些对象。此时发出的http请求头中并没有Referer字段。这时可以采用如下的办法获取正确的虚拟路径:
根据Http 1.1协议的建议,为了提高传输效率,在打开页面的过程中,下载内嵌对象时,将采用常连接,保持原来的TCP连接(SSL连接)不断开。在一条常连接上可以传送多个Http请求及其应答。
对每一次正确的页面请求,都保存相应的虚拟网关路径,并且与接收该请求的SSL链接相关联。利用上一次正确的请求路径,获取正确的虚拟网关路径。
这样,从同一条SSL连接上收到的http请求,其目的主机都是相同的。所以在保存了html页面的虚拟路径后,如果后续Http请求中没有Referer字段,则可以利用保存的虚拟路径,来获得该请求对应的虚拟网关路径。修正路径的方法与步骤s405相似,利用之前保存的虚拟网关路径替换http请求中对应的路径。
例如:以远程主机获取一个名为about.htm的页面为例,该页面中包含一个图片image001.png。浏览器首先向内网服务器发送下面的http请求,
GET/svpn/web1/about.htm HTTP/1.1
Accept:*/*
Referer:https://x.x.x.x/svpn/web1/common/logo.jsp
Accept-Language:zh-cn
Accept-Encoding:gzip,deflate
User-Agent:Mozilla/4.0(compatible;MSIE 6.0;Windows NT 5.1;SV1;.NET CLR 1.1.4322)
Host:pal
Connection:Keep-Alive
Cookie:JSESSIONID=FADAA0664DE15F231C57382909782BC1
由于所请求的URL为正确的网关上的虚拟路径,SSL VPN网关可以找到对应的内网URL,此时就将“/svpn/web1/about.htm”记录下来,作为此SSL链接所保存的上一次正确访问的URL,然后转发该请求获取about.htm页面返回给远端。
在返回的about.htm页面中嵌了一个指向图片image001.png的链接:
<img src=/xyz/about/about.files/image001.png>
假设该链接由于复杂没有被改写为网关虚拟路径。浏览器在获得了about.htm页面后,会自动根据页面中图片链接去获取图片。于是便向SSL VPN网关发送了一个获取图片的请求,但其中不包括Referer字段:
GET/xyz/about/about.files/image001.png HTTP/1.1
Accept:*/*
Accept-Encoding:gzip,deflate
User-Agent:Mozilla/4.0(compatible;MSIE 6.0;Windows NT 5.1;SV1;.NET CLR 1.1.4322)
Host:pal
Connection:Keep-Alive
Cookie:JSESSIONID=FADAA0664DE15F231C57382909782BC1
该请求中所涉及的图片链接为“/xyz/about/about.files/image001.png”,由于网关没有对其进行改写,所以该请求中并没有包含网关虚拟路径,同时请求中也不含有Referer字段。此时,可以将上一步骤获取about.htm页面时所保存的的地址“/svpn/web1/about.htm”作为Referer字段,参照s401~s404所描述的步骤,对“/xyz/about/about.files/image001.png”进行改写,即可获得对应的虚拟网关路径为“/svpn/web1/about/about.files/image001.png”。
最后,对于上述修正后的路径,网关以重定向报文发给浏览器,引导浏览器访问正确的虚拟网关路径。其目的在于:使浏览器使用正确的虚拟网关路径,以便应用cookie等技术。
实现重定向的方法有多种,本发明以下仅举一例,说明实现的可行性:
HTTP/1.1307 Temporary Redirect
Server:SSL VPN PROxY
Location:https://192.168.111.88/svpn/web1/images/ed_word.gif
Pragma:no-cache
Cache-Control:no-cache
Content-Type:text/html
Content-Length:278
<HTML><HEAD>
<META HTTP-EQUIV=″REFRESH″CONTENT=″0;URL=
https://192.168.111.88/svpn/web1/images/ed_word.gif″>
<TITLE>SSL VPN PROxY</TITLE>
</HEAD><BODY>
<A href=″https://192.168.111.88/svpn/web1/images/ed_word.gif″>urlmoved</A>
</BODY></HTML>
在以上的报文中,采用Http协议的307号应答报文进行重定向,并且附加了一个html重定向页面,其中使用META元素的HTTP-EQUIV属性的refresh方法,要求浏览器按照指定的路径刷新页面,从而保证了在客户端浏览器不支持307号报文时,也能进行重定向。其中假设SSL VPN网关的地址为192.168.111.88,这里将请求“GET/xyz/images/ed_word.gif”,重定向到了“192.168.111.88/svpn/web1/images/ed_word.gif”,并通过307号应答报文或重定向界面使得浏览器访问更新后的链接。
通过使用本发明的上述方法,在远程主机请求访问之前SSL VPN网关返回的未能有效改写的“不完全绝对链接”的情况下,SSL VPN网关依然可以引导浏览器获取到正确的页面。从而降低了SSL VPN网关对web页面语言进行解析的强度,降低了产品开发和维护难度,使得SSLVPN网关有了更强的容错能力。
本发明还提供了一种SSL VPN网关设备,用于对从内网服务器接收到的向远程主机返回的页面中的“不完全的绝对链接”进行改写。该SSL VPN网关设备的结构如图5所示,包括:
远程主机接口10,与链接改写单元30和重定向报文生成单元40连接,用于将远程主机访问不完全绝对链接的请求向链接改写单元30发送;并将重定向报文生成单元40生成的包括改写后的链接的重定向报文向远程主机发送。
资源配置单元20,与链接改写单元30连接,用于建立“虚实路径映射表”,其中包括虚拟网关路径以及内网服务器资源的对应关系,以供链接改写单元30进行链接改写时使用。
链接改写单元30,与远程主机接口10、资源配置单元20以及重定向报文生成单元40连接,用于根据资源配置单元20的配置,对从远程主机接口10接收到的远程主机请求访问的不完全绝对链接进行改写,并将改写后的链接向重定向报文生成单元40发送。
重定向报文生成单元40,与远程主机接口10和链接改写单元30连接,用于接收到链接改写单元30发送的改写后的链接时,根据该链接生成重定向报文,并将该重定向报文向远程主机接口10发送。
其中,链接改写单元30进一步包括:
判断子单元31,用于判断所述远程主机接口发送的远程主机的请求中是否存在Referer字段,若存在则将所述请求发送到第一链接改写子单元32;否则发送到第二链接改写子单元33。
第一链接改写子单元32,用于使用请求中的Referer字段携带的虚拟网关路径替换所述请求中对应的路径。
第二链接改写子单元33,用于使用SSL链接关联存储子单元34预先保存的与该请求的SSL链接关联的虚拟网关路径,替换该请求中对应的路径。
SSL链接关联存储子单元34,用于对于正确的页面请求,保存相应的虚拟网关路径,并且与接收到该请求的SSL链接相关联。
通过使用本发明的上述SSL VPN网关设备,在远程主机请求访问之前SSLVPN网关返回的未能有效改写的“不完全绝对链接”的情况下,SSL VPN网关依然可以引导浏览器获取到正确的页面。从而降低了SSL VPN网关对web页面语言进行解析的强度,降低了产品开发和维护难度,使得SSL VPN网关有了更强的容错能力。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (7)

1.一种基于SSL VPN的链接改写方法,其特征在于,包括以下步骤:
SSL VPN网关接收到远程主机访问不完全绝对链接的请求,所述不完全绝对链接为之前在经过SSL VPN网关时未能有效改写的链接;
所述SSL VPN网关对所述不完全绝对链接进行改写,具体的,所述SSLVPN网关判断所述远程主机访问不完全绝对链接的请求中是否存在Referer字段;
当判断结果为是时,所述SSL VPN网关获取所述请求的Referer字段携带的虚拟网关路径,判断所述Referer字段携带的虚拟网关路径是否正确,正确时使用所述Referer字段携带的虚拟网关路径替换所述请求中对应的路径;
当判断结果为否时,所述SSL VPN网关利用预先保存的与所述请求的SSL链接关联的虚拟网关路径,获取与所述请求对应的虚拟网关路径,利用所述虚拟网关路径替换所述请求中对应的路径;
所述SSL VPN网关向所述远程主机发送包括所述改写后的不完全绝对链接的重定向页面。
2.如权利要求1所述基于SSL VPN的链接改写方法,其特征在于,所述SSL VPN网关接收到远程主机访问不完全绝对链接的请求的步骤前还包括:
所述SSL VPN网关根据本地的虚拟网关路径与内网服务器资源的对应关系,无法对内网服务器向远程主机发送的不完全绝对链接进行改写时,直接将未改写的不完全绝对链接向所述远程主机发送;
所述SSL VPN网关接收到远程主机访问不完全绝对链接的请求具体为:
所述SSL VPN网关接收到所述远程主机访问所述未改写的不完全绝对链接的请求。
3.如权利要求1所述基于SSL VPN的链接改写方法,其特征在于,所述判断所述Referer字段携带的虚拟网关路径是否正确的步骤具体为:
判断本地的虚拟网关路径与内网服务器资源的对应关系中,是否存在与Referer字段中的虚拟网关路径对应的虚拟网关路径,或是否存在与Referer字段中的虚拟网关路径对应的虚拟网关路径的上级目录,若是则继续;
判断所述请求的路径是否位于所述Referer字段中的虚拟网关路径对应的内网站点路径下,若是则判断为Referer字段携带的虚拟网关路径正确。
4.如权利要求1所述基于SSL VPN的链接改写方法,其特征在于,所述利用预先保存的与此SSL链接关联的虚拟路径获取与所述请求对应的虚拟网关路径的步骤前还包括:
对于正确的页面请求,保存相应的虚拟网关路径,并且与接收所述请求的SSL链接相关联。
5.如权利要求1所述基于SSL VPN的链接改写方法,其特征在于,所述重定向页面为包括所述改写后的不完全绝对链接的基于http协议307号应答报文,或基于http协议的重定向页面。
6.一种SSL VPN网关设备,用于对远程主机请求访问的不完全绝对链接进行改写,所述不完全绝对链接为之前在经过SSL VPN网关时未能有效改写的链接,其特征在于,包括:
远程主机接口,用于将远程主机访问不完全绝对链接的请求向链接改写单元发送;并将重定向报文生成单元生成的包括改写后的链接的重定向报文向所述远程主机发送;
链接改写单元,用于对从所述远程主机接口接收到的远程主机请求访问的不完全绝对链接进行改写,并将改写后的链接向重定向报文生成单元发送;
重定向报文生成单元,用于根据所述链接改写单元发送的改写后的链接生成重定向报文,并将所述重定向报文向远程主机接口发送;
所述链接改写单元进一步包括:判断子单元,用于判断所述远程主机接口发送的远程主机的请求中是否存在Referer字段,若存在则将所述请求发送到第一链接改写子单元;否则发送到第二链接改写子单元;第一链接改写子单元,用于使用请求中的所述Referer字段携带的虚拟网关路径替换所述请求中对应的路径;第二链接改写子单元,用于使用SSL链接关联存储子单元预先保存的与所述请求的SSL链接关联的虚拟网关路径,替换所述请求中对应的路径;SSL链接关联存储子单元,用于对于正确的页面请求,保存相应的虚拟网关路径,并且与接收所述请求的SSL链接相关联。
7.如权利要求6所述SSL VPN网关设备,其特征在于,还包括:
资源配置单元,用于建立虚拟网关路径以及内网服务器资源的对应关系,以供所述链接改写单元进行链接改写时使用。
CN2007101632225A 2007-10-19 2007-10-19 一种基于ssl vpn的链接改写方法和设备 Active CN101136834B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007101632225A CN101136834B (zh) 2007-10-19 2007-10-19 一种基于ssl vpn的链接改写方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007101632225A CN101136834B (zh) 2007-10-19 2007-10-19 一种基于ssl vpn的链接改写方法和设备

Publications (2)

Publication Number Publication Date
CN101136834A CN101136834A (zh) 2008-03-05
CN101136834B true CN101136834B (zh) 2010-06-02

Family

ID=39160680

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101632225A Active CN101136834B (zh) 2007-10-19 2007-10-19 一种基于ssl vpn的链接改写方法和设备

Country Status (1)

Country Link
CN (1) CN101136834B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101242336B (zh) * 2008-03-13 2010-12-01 杭州华三通信技术有限公司 远程访问内网Web服务器的方法及Web代理服务器
CN101296228B (zh) * 2008-06-19 2010-10-06 上海交通大学 基于流量分析的ssl vpn协议检测方法
CN102098328B (zh) * 2010-12-10 2014-06-11 华为技术有限公司 超文本传输协议http流关联方法和设备
CN102291742A (zh) * 2011-08-18 2011-12-21 中兴通讯股份有限公司 无线路由设备的版本更新方法及装置
CN103714182A (zh) * 2014-01-10 2014-04-09 湖南神州祥网科技有限公司 一种网页请求的关联方法及装置
CN107436873B (zh) * 2016-05-25 2021-05-07 北京奇虎科技有限公司 一种网址跳转方法、装置及中转装置
CN107317845A (zh) * 2017-06-07 2017-11-03 北京星网锐捷网络技术有限公司 基于Web代理的数据获取方法及装置
CN112260988B (zh) * 2020-09-16 2021-09-24 厦门网宿有限公司 一种异常请求处理方法和装置
CN113179251B (zh) * 2021-03-29 2022-05-27 新华三信息安全技术有限公司 一种前端文件处理方法、装置、设备及机器可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1477553A (zh) * 2003-07-18 2004-02-25 毛德操 采用Web代理实现进口设备用户界面本地化的方法
CN1794683A (zh) * 2005-12-23 2006-06-28 深圳市深信服电子科技有限公司 一种基于Web的线路自动选择方法
CN101047599A (zh) * 2006-03-31 2007-10-03 袁初成 一种分布式ssl vpn***及构架方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1477553A (zh) * 2003-07-18 2004-02-25 毛德操 采用Web代理实现进口设备用户界面本地化的方法
CN1794683A (zh) * 2005-12-23 2006-06-28 深圳市深信服电子科技有限公司 一种基于Web的线路自动选择方法
CN101047599A (zh) * 2006-03-31 2007-10-03 袁初成 一种分布式ssl vpn***及构架方法

Also Published As

Publication number Publication date
CN101136834A (zh) 2008-03-05

Similar Documents

Publication Publication Date Title
CN101136834B (zh) 一种基于ssl vpn的链接改写方法和设备
CN101132420B (zh) 一种基于ssl vpn的链接改写方法和设备
CN101242336B (zh) 远程访问内网Web服务器的方法及Web代理服务器
US8949368B2 (en) Method for cache object aggregation
US8856279B2 (en) Method and system for object prediction
JP3807961B2 (ja) セッション管理方法、セッション管理システムおよびプログラム
US7085817B1 (en) Method and system for modifying requests for remote resources
CN101753606B (zh) 一种实现web反向代理的方法
US9183188B2 (en) Dynamic toolbar for markup language document
CN100508518C (zh) 网络***、反向代理装置、计算机设备以及数据处理方法
US7904073B2 (en) System and method for processing extensible markup language (XML) documents
CN102783119B (zh) 访问控制方法、***及接入终端
CN112714194B (zh) 一种外网主机访问内网设备的方法和网络拓扑结构
CN101523865A (zh) 用于使用http-察觉的客户端代理的***和方法
CN101902485B (zh) 一种反向Web代理的链接改写方法
CN101523866A (zh) 用于分层全局负载平衡的***和方法
US20110131478A1 (en) Method and system for modifying script portions of requests for remote resources
CN102929985A (zh) 一种收藏网页展示的方法和***
US9866614B2 (en) Methods for website version control using bucket cookies
JP2003162449A (ja) アクセス統合管理システム、アクセス統合管理装置及び方法並びにプログラム
US20160080443A1 (en) Non-Intrusive Proxy System and Method for Applications Without Proxy Support
EP1052827A2 (en) Dynamic resource modification in a communication network
JP4206206B2 (ja) 情報資源の更新方法
KR101401004B1 (ko) 스니핑 유닛을 포함하는 보안 장치 및 그것의 동작 방법
CN115563412A (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