一种授权方法、装置及设备与流程

文档序号:18738033发布日期:2019-09-21 01:25阅读:178来源:国知局
一种授权方法、装置及设备与流程

本申请涉及数据处理领域,具体涉及一种授权方法、装置及设备。



背景技术:

授权是指为接入网关类产品的外部用户设置对内网资源的访问权限,属于保护内网资源访问安全的主要手段之一。

对于Web站点服务器,信息资源的提供者可能对站点做了外链,也可能经常对站点内的信息进行更新。如果需要对Web站点服务器进行授权,则需要将该站点的外链信息枚举全,另外还需要在站点更新时,及时调整授权信息,否则就会存在访问受限的问题。

但是,对于企业门户网站等外链信息较多的站点来说,将外链信息枚举全是一项相对繁琐的工作,即使存在网站爬虫技术,也会爬取的非常慢且容易造成遗漏,另外,在站点更新时也可能导致授权信息更新不及时的问题。



技术实现要素:

有鉴于此,本申请提供了一种授权方法、装置及设备,能够基于对服务器返回的页面访问响应的解析,实现动态授权,不存在枚举外链信息以及授权信息更新不及时的问题。

第一方面,为实现上述发明目的,本申请提供了一种授权方法,其特征在于,所述方法应用于网关设备,所述方法包括:

接收来自任一服务器的页面访问响应后,对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名;其中,所述页面访问响应为针对客户端发送的任一页面访问请求返回的响应;

如果确定所述页面访问响应中携带需要再次访问的域名,且所述域名未经授权,则将所述域名与预先配置的动态授权信息进行匹配;

如果所述域名与所述动态授权信息匹配成功,则利用根据预设规则生成的动态URL路径替换所述页面访问响应中的所述域名,并记录所述动态URL路径与所述域名的对应关系;

将所述页面访问响应返回至所述客户端,以便所述客户端根据所述页面访问响应中的所述动态URL路径再次访问对应的资源。

一种可选的实施方式中,所述页面访问请求中携带的标签的类别已被标记;所述接收来自任一服务器的页面访问响应后,对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名之前,还包括:

对所述页面访问请求进行解析,以确定所述页面访问请求中已被标记的标签的类别;

相应的,所述对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名,包括:

根据所述标签的类别对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名。

一种可选的实施方式中,所述网关设备安装有html引擎、JS引擎和CSS引擎,所述根据所述标签的类别对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名,包括:

如果所述标签的类别为html标签,则利用所述html引擎、所述JS引擎和所述CSS引擎,对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名;

如果所述标签的类别为JS标签,则利用所述JS引擎对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名;

如果所述标签的类别为CSS标签,则利用所述CSS引擎对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名。

一种可选的实施方式中,所述如果所述标签的类别为JS标签,则利用所述JS引擎对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名,包括:

如果所述标签的类别为JS标签,则利用所述JS引擎对所述页面访问响应进行解析,得到JS脚本文件;

为所述JS脚本文件构造语法树,并将所述语法树中位于最底层的页面请求发送函数替换为预设函数;其中,所述预设函数用于在客户端运行所述JS脚本文件时确定所述JS脚本文件中是否携带需要再次访问的域名。

一种可选的实施方式中,所述接收来自任一服务器的页面访问响应后,对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名,包括:

接收来自任一服务器的页面访问响应后,对所述页面访问响应进行解析,确定所述页面访问响应是否为重定向响应;

如果所述页面访问响应为重定向响应,则确定所述页面访问响应的头部header中是否携带需要再次访问的域名。

一种可选的实施方式中,所述利用所述html引擎对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名,包括:

利用所述html引擎对所述页面访问响应进行流式解析,以确定所述页面访问响应中是否携带需要再次访问的域名。

一种可选的实施方式中,所述将所述页面访问响应返回至所述客户端之前,还包括:

将所述页面访问响应中携带的标签的类别进行标记,以便所述客户端基于已被标记类别的标签再次访问所述域名对应的资源。

第二方面,本申请还提供了一种授权装置,所述装置应用于网关设备,所述装置包括:

第一解析模块,用于接收来自任一服务器的页面访问响应后,对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名;其中,所述页面访问响应为针对客户端发送的任一页面访问请求返回的响应;

匹配模块,用于在确定所述页面访问响应中携带需要再次访问的域名,且所述域名未经授权时,将所述域名与预先配置的动态授权信息进行匹配;

替换模块,用于在所述域名与所述动态授权信息匹配成功时,利用根据预设规则生成的动态URL路径替换所述页面访问响应中的所述域名,并记录所述动态URL路径与所述域名的对应关系;

返回模块,用于将所述页面访问响应返回至所述客户端,以便所述客户端根据所述页面访问响应中的所述动态URL路径再次访问对应的资源。

一种可选的实施方式中,所述装置还包括:

第二解析模块,用于对所述页面访问请求进行解析,以确定所述页面访问请求中已被标记的标签的类别;

相应的,所述第一解析模块,具体用于:

根据所述标签的类别对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名。

一种可选的实施方式中,所述网关设备安装有html引擎、JS引擎和CSS引擎,所述第二解析模块,包括:

第一解析子模块,用于在所述标签的类别为html标签时,利用所述html引擎、所述JS引擎和所述CSS引擎,对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名;

第二解析子模块,用于在所述标签的类别为JS标签时,利用所述JS引擎对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名;

第三解析子模块,用于在所述标签的类别为CSS标签时,利用所述CSS引擎对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名。

一种可选的实施方式中,所述第二解析子模块,包括:

第四解析子模块,用于在所述标签的类别为JS标签时,利用所述JS引擎对所述页面访问响应进行解析,得到JS脚本文件;

替换子模块,用于为所述JS脚本文件构造语法树,并将所述语法树中位于最底层的页面请求发送函数替换为预设函数;其中,所述预设函数用于在客户端运行所述JS脚本文件时确定所述JS脚本文件中是否携带需要再次访问的域名。

一种可选的实施方式中,所述第一解析模块,包括:

第五解析子模块,用于接收来自任一服务器的页面访问响应后,对所述页面访问响应进行解析,确定所述页面访问响应是否为重定向响应;

确定子模块,用于在所述页面访问响应为重定向响应时,确定所述页面访问响应的头部header中是否携带需要再次访问的域名。

一种可选的实施方式中,所述第二解析子模块,包括:

第六解析子模块,用于利用所述html引擎对所述页面访问响应进行流式解析,以确定所述页面访问响应中是否携带需要再次访问的域名。

一种可选的实施方式中,所述装置还包括:

标记模块,用于将所述页面访问响应中携带的标签的类别进行标记,以便所述客户端基于已被标记类别的标签再次访问所述域名对应的资源。

第三方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述任一项所述的授权方法。

第四方面,本申请还提供了一种授权设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述任一项所述的授权方法。

本申请提供了一种授权方法,不需要预先将需要授权的信息进行枚举,而是通过对服务器返回的页面访问响应进行解析,得到需要再次访问的域名,将该域名与预先配置的动态授权信息进行匹配,如果匹配成功,则生成动态URL路径,并利用该动态URL路径替换页面访问响应中的域名,将该页面访问响应返回至客户端,以便该客户端能够根据该页面访问响应中的动态URL路径实现对资源的访问,完成对资源的动态授权。本申请不存在上述方案中的枚举可能存在的问题,由于是动态授权,所以也不存在对授权的信息更新不及时的问题。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种授权方法的流程图;

图2为本申请实施例提供的一种授权方法的数据交互图;

图3为本申请实施例提供的一种授权装置的结构示意图;

图4为本申请实施例提供的一种授权设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

目前,对Web站点服务器进行授权的方法主要通过枚举的方式实现,即预先将所有授权的服务器真实地址与网关设备映射地址的对应关系进行存储,在任一外部用户对Web站点服务器进行资源访问时,通过查询上述存储的对应关系,实现对资源的访问。

但是,将所有授权的信息均枚举全是一项困难且繁琐的工作,容易出现遗漏等问题,另外,该方法中如果某些授权的信息需要更新也可能存在更新不及时的问题。

为此,本申请提供了一种授权方法,不需要预先将需要授权的信息进行枚举,而是通过对服务器返回的页面访问响应进行解析,得到需要再次访问的域名,将该域名与预先配置的动态授权信息进行匹配,如果匹配成功,则生成动态URL路径,并利用该动态URL路径替换页面访问响应中的域名,将该页面访问响应返回至客户端,以便该客户端能够根据该页面访问响应中的动态URL路径实现对资源的访问,完成对资源的动态授权。本申请不存在枚举可能存在的问题,由于是动态授权,所以也不存在对授权的信息更新不及时的问题。

具体的,本申请实施例提供了一种授权方法,参考图1,为本申请实施例提供的一种授权方法的流程图,该方法应用于网关设备,该方法包括:

S101:接收来自任一服务器的页面访问响应后,对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名;其中,所述页面访问响应为针对客户端发送的任一页面访问请求返回的响应。

网关设备用于保证内网资源的访问安全,为此,在任一客户端向内网服务器发送页面访问请求后,首先由该服务器的网关设备接收该页面访问请求,并对该页面访问请求进行权限校验后,确定是否允许本次访问。如果校验通过,网关设备将该页面访问请求转发至内网服务器,否则可以向客户端返回权限未通过校验的提示。

实际应用中,客户端用户首先需要登录网关设备,在登录成功后网关设备向该客户端用户返回内网服务器列表,客户端用户通过点击内网服务器列表中的任一服务器,触发对该服务器的页面访问请求。

当该服务器接收到页面访问请求后,针对该页面访问请求生成页面访问响应,并将该页面访问响应返回至网关设备,以便由网关设备将其转发至对应的客户端,完成本次资源访问。

本申请实施例中,网关设备在接收到来自服务器的页面访问响应后,对该页面访问响应进行解析,其中的一个目的是确定该页面访问响应中是否携带需要再次访问的域名。其中,需要再次访问的域名是指用户根据该域名能够再次进行页面访问。如果该页面访问响应中携带需要再次访问的域名,则说明该客户端可以根据该页面访问响应中携带的需要再次访问的域名再次进行页面的访问。例如,用户通过百度搜索“专利检索网站”,则百度服务器返回的页面访问响应中携带“专利检索网站”对应的网站列表,其中包括各个专利检索网站的域名,用户可以根据各个专利检索网站的域名再次进行具体专利检索网站的访问。其中,百度服务器返回的页面访问响应中携带的各个专利检索网站的域名即为本申请实施例中的需要再次访问的域名。另外,如果该页面访问响应中未携带需要再次访问的域名,则说明用户不能针对该页面访问响应再次进行页面的访问。例如,用户通过百度百科搜索“正则表达式”,则百度服务器返回的页面访问响应中携带“正则表达式”相关的文本内容,未携带需要再次访问的域名,用户不会再次进行页面的访问。为了使得客户端后续能够有权进行页面的访问,本申请实施例需要将该域名对应的服务器的访问权限授权给该客户端用户。

一种可选的实施方式中,可以通过正则表达式对该页面访问响应进行解析。具体的,通过对该页面访问响应的解析可以确定该页面访问响应是否为重定向响应,如果是,则可以进一步确定该页面访问响应的头部header中是否携带需要再次访问的域名。其中,重定向响应是指通过某种方式将网络请求重新定个方向转到其它位置的响应,通常包括301重定向redirect、302redirect与meta fresh等重定向响应类型。另外,页面访问响应中的JS脚本文件、html网页文件和CSS样式文件均可能携带需要再次访问的域名,具体的,确定JS脚本文件、html网页文件和CSS样式文件中是否携带需要再次访问的域名的方法在后续进行介绍。

S102:如果确定所述页面访问响应中携带需要再次访问的域名,且所述域名未经授权,则将所述域名与预先配置的动态授权信息进行匹配。

本申请实施例中,在确定页面访问响应中携带需要再次访问的域名后,需要进一步确定该域名是否已经授权,如果未经授权,则需要进一步的对该域名进行授权;如果已经授权,则不需要对该域名进行重复授权。

一种可选的实施方式中,在确定页面访问响应中携带需要再次访问的域名后,将该域名与预先存储的已授权列表进行匹配,如果匹配成功,则说明该域名已经完成授权;否则需要进一步的对该域名进行授权。值得注意的是,确定该域名是否已经授权的方法不局限于上述方式,本申请实施例对此不做限定。

本申请实施例中,网关设备的管理员可以预先配置需要进行动态授权的动态授权信息,一种可选的实现方式中,可以为某个已授权的服务器内部出现的相同后缀的链接域名均授予与该服务器相同的权限。假设动态授权信息配置为*.neusoft.com,则表示具有neusoft.com后缀的链接域名如同web.neusoft.com一样授权给用户。另外,动态授权信息中还可以具体划分相应的用户资源权限,以明确不同用户对应的具体权限。例如,在数字化校园网平台下,可以为学生仅开放数字化校园网的图书管理系统和学生系统的权限,不开放教师管理系统的权限。另外,动态授权信息中还可以设置各个权限的超时时间,以及具有访问权限的用户等。本申请实施例对动态授权信息中包含的具体设置参数不做限定。

实际应用中,如果确定页面访问响应中携带的需要再次访问的域名未经授权,则将该域名与预先配置的动态授权信息进行匹配,以确定是否对该域名进行动态授权。具体的,如果该域名与动态授权信息匹配成功,则后续为该域名进行动态授权;否则不需要对其进行动态授权,直接向客户端返回该页面访问响应即可。

S103:如果所述域名与所述动态授权信息匹配成功,则利用根据预设规则生成的动态URL路径替换所述页面访问响应中的所述域名,并记录所述动态URL路径与所述域名的对应关系。

本申请实施例中,如果页面访问响应中携带的需要再次访问的域名与预先配置的动态授权信息匹配成功,则说明需要对该域名进行动态授权。具体的,根据预设规则生成动态URL路径,并利用生成的动态URL路径替换页面访问响应中的该域名,并记录该动态URL路径与该域名的对应关系。

实际应用中,动态URL路径的生成方式可以包括:首先确定资源对应的标识,其中,该标识用于唯一确定该资源,本申请实施例不限定该标识的具体形式。其次,根据该标识和网关设备的地址生成动态URL路径,客户端可以根据该动态URL路径经由网关设备对该资源进行访问,其中,资源可以包括服务器资源、网页资源等。例如,对于服务器资源http://www.resource.com,首先为该资源确定一对应的标识web1,其次,将该标识web1与网关设备的地址https://proxy.com组合,生成用于经由该网关设备访问该资源的动态URL路径https://proxy.com/web1/。

另外,在生成动态URL路径后,利用该动态URL路径替换页面访问响应中的需要再次访问的域名,并记录该动态URL路径与该域名的对应关系。例如,生成的动态URL路径为https://proxy.com/web1/neti_1_web2/,如果对页面访问响应解析后得到包含需要再次访问的域名的信息<a href=”http://www.a.com”>,则利用https://proxy.com/web1/neti_1_web2/替换该页面访问响应中的域名,得到<a href=https://proxy.com/web1/neti_1_web2/>。同时记录该动态URL路径与该域名的对应关系,以便网关设备基于该对应关系处理后续的页面访问请求。

S104:将所述页面访问响应返回至所述客户端,以便所述客户端根据所述页面访问响应中的所述动态URL路径再次访问对应的资源。

本申请实施例中,网关设备在将页面访问响应中需要再次访问的域名替换后,将该页面访问响应返回至客户端,客户端后续可以根据该页面访问响应中的动态URL路径向网关设备再次发起页面访问请求,网关设备通过查询存储的动态URL路径与域名的对应关系,确定资源真实的地址,并向该地址对应的服务器转发该页面访问请求,实现资源的访问。

本申请实施例提供的授权方法中,网关设备对来自服务器的页面访问响应进行解析,确定其是否携带需要再次访问的域名,如果存在且未经授权,则通过匹配预先设置的动态授权信息的方式确定该域名是否需要进行动态授权,如果需要对该域名进行动态授权,则利用根据预设规则生成的动态URL路径替换页面访问响应中的该域名,并记录该动态URL路径与该域名的对应关系,最终将该页面访问响应返回至对应的客户端,以便该客户端能够实现对动态授权资源的访问。本申请实施例能够基于对服务器返回的页面访问响应的解析,实现动态授权,不存在枚举外链信息以及授权信息更新不及时的问题。

另外,通常服务器会在返回的页面访问响应的头部Content-Type字段中携带响应的标签的类别,从而网关设备可以通过该标签的类别确定对该页面访问响应的处理方式。但是,由于可能存在某些服务器未按照标准方式开发的问题,导致这些服务器返回的页面访问响应的头部Content-Type字段中携带的标签的类别不准确,从而使得网关设备对响应的标签的类别识别不准确,最终导致对页面访问响应的处理可能存在问题。为了解决上述问题,本申请实施例在利用动态URL路径对页面访问响应中的域名进行替换时,将该页面访问响应中的标签的类别进行标记,以便客户端后续根据该页面访问响应再次发送访问该域名对应的资源的页面访问请求时,网关设备能够基于该页面访问响应中已经标记的标签的类别对服务器再次返回的页面访问响应进行处理,避免了服务器返回的响应头部Content-Type字段中携带的标签的类别不准确导致的问题。

举例说明,假设某服务器首次返回的页面访问响应中包括如下内容:

<script src="https://proxy.com/web1/js/common.js"></script>

网关设备针对该页面访问响应中的上述内容,将标签的类别进行替换,替换标签的类别后的页面访问响应中可以包括如下内容:

<script src="https://proxy.com/web1/js/,NetiContentType=js+common.js">

</script>

其中,/common.js替换为/,NetiContentType=js+common.js,以表明该响应具有JS标签,后续客户端基于该页面访问响应再次发起资源访问后,网关设备可以基于该JS标签对后续的页面访问响应进行处理。

本申请实施例中的标签的类别包括JS标签、html标签和CSS标签,也就是说,网关设备可以将上述三种类别的标签进行替换,具体替换为类别对应的预设形式,以便后续客户端再次发起资源访问后,网关设备可以基于替换后的标签的类别对后续的页面访问响应进行处理。

实际应用中,网关设备在接收到客户端再次发起的页面访问请求后,对该页面请求进行解析,得到标签的类别,并基于该标签的类别对后续服务器返回的页面访问响应进行处理。

一种可选的实现方式中,网关设备安装有html引擎、JS引擎和CSS引擎。具体的,如果标签的类别为html标签,则网关设备利用html引擎、JS引擎和CSS引擎,对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名;如果所述标签的类别为JS标签,则利用所述JS引擎对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名;如果所述标签的类别为CSS标签,则利用所述CSS引擎对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名。

一种可选的实施方式中,利用html引擎对页面访问响应进行流式解析,以确定页面访问响应中是否携带需要再次访问的域名。流式解析是指网关设备在接收来自服务器的页面访问请求的过程中,解析一个片段处理一个片段,不需要构造语法树,也不涉及上下文的处理。

另外,由于JS脚本文件在客户端浏览器执行时才能确定是否携带需要再次访问的域名,因此,本申请实施例针对JS脚本文件提供了一种处理方式,具体的,如果标签的类别为JS标签,则利用JS引擎对页面访问响应进行解析,得到JS脚本文件;然后为JS脚本文件构造语法树,并将该语法树中位于最底层的页面请求发送函数替换为预设函数。在客户端浏览器运行该JS脚本文件时,该预设函数用于确定该脚本文件中是否携带需要再次访问的域名。如果存在,则客户端可以向网关设备发送携带该域名的授权请求,网关设备对该授权请求进行解析后得到该域名,然后确定该域名是否已经授权,如果未经授权,则将该域名与预先配置的动态授权信息进行匹配,如果匹配成功,则利用根据预设规则生成的动态URL路径替换所述页面访问响应中的所述域名,并记录所述动态URL路径与所述域名的对应关系,完成对该域名的动态授权。

也就是说,对于JS脚本文件中的需要再次访问的域名,网关设备不是将其直接替换为动态URL路径,而是将页面请求发送函数替换为能够实现对需要再次访问的域名的识别功能的预设函数,在该预设函数运行于客户端浏览器时,能够从JS脚本文件中提取需要再次访问的域名,并发送至网关设备由其对该域名进行授权。例如,html dom的open函数,是用于发送页面请求的函数,本申请实施例将该open函数替换为预设函数netiOpen(obj,[args]),并将该netiOpen函数放在JS脚本文件加载之前优先被加载的位置。当客户端浏览器执行该netiOpen函数时,从JS脚本文件中提取需要再次访问的域名,并向网关设备发送携带该域名的授权请求。

为了更形象的对本申请提供的授权方法进行说明,本申请实施例提供了一种具体的授权场景。参考图2,为本申请实施例提供的一种授权方法的数据交互图,包括:

S201:客户端用户通过浏览器登录网关设备后,网关设备返回已授权的资源列表。

S202:客户端用户通过点击该资源列表中的某一资源,触发向网关设备发送该资源的页面访问请求https://proxy.com/web1/index.html。

S203:网关设备将该页面访问请求中的URL地址替换为该资源的真实地址web.neusoft.com后,将该页面访问请求发送至对应的服务器。

一种可选的实现方式中,在对web.neusoft.com进行授权时已经存储了“https://proxy.com/web1”与“web.neusoft.com”的对应关系,因此,在客户端发起页面访问请求https://proxy.com/web1/index.html后,网关设备会根据预先存储的对应关系,将https://proxy.com/web1/index.html替换为真实地址web.neusoft.com。

S204:网关设备接收该服务器针对该页面访问请求返回的页面访问响应。

其中,所述页面访问响应可以包括以下内容:

<html>

<script src="https://web.neusoft.com/js/common.js"></script>

<link type="text/css"rel="stylesheet"href="css/skin.css"><head>

<head>

</head>

<body>

....

<a href="http://sns.neusoft.com/">东软社区</a>---------内部服务器

<a href="http://ehr.neusoft.com">Ehr平台</a>---------内部服务器

<a href="https://www.baidu.com/">百度</a>---------外部服务器

....

</body>

</html>

S205:网关设备对上述页面访问响应进行解析,确定该页面访问响应中携带需要再次访问的域名sns.neusoft.com和ehr.neusoft.com。

值得注意的是,对于外部服务器不属于本申请实施例的授权对象。

S206:网关设备在确定sns.neusoft.com和ehr.neusoft.com未经授权,则将这两个域名与预先配置的动态授权信息*.neusoft.com进行匹配,匹配成功则执行S207。

S207:网关设备利用生成的动态URL路径https://proxy.com/web1/neti_1_http_sns.neusoft.com_80/替换页面访问响应中的http://sns.neusoft.com/,利用生成的动态URL路径https://proxy.com/web1/neti_1_http_ehr.neusoft.com_80/替换页面访问响应中的http://ehr.neusoft.com/,并存储对应关系。

另外,网关设备将页面访问响应中携带的标签的类别替换成预设形式。

其中,替换后的页面访问响应可以包括以下内容:

<html>

<script

src="https://proxy.com/web1/js/,NetiContentType=js+common.js"></script>

<link

type="text/css"rel="stylesheet"

href="css/,NetiContentType=css+skin.css"><head>

</head>

<body>

....

<a href="https://proxy.com/web1/neti_1_http_sns.neusoft.com_80/">东软社区</a>---内部服务器被替换

<a href="https://proxy.com/web1/neti_1_http_ehr.neusoft.com_80/">Ehr平台</a>---内部服务器被替换

<a href="https://www.baidu.com/">百度</a>---------外部服务器不变

....

</body>

</html>

S208:将替换后的页面访问响应返回至客户端,通过浏览器解析后显示给客户端用户。

S209:客户端用户通过点击页面显示的“东软社区”向网关设备发送携带“https://proxy.com/web1/neti_1_http_sns.neusoft.com_80/”的页面访问请求。

另外,该页面访问请求中还携带“NetiContentType=js+”和“NetiContentType=css+”两种标签的类别,用于确定该页面访问请求的页面访问响应的处理方式。

S210:网关设备基于存储的对应关系,确定https://proxy.com/web1/neti_1_http_sns.neusoft.com_80/对应的http://sns.neusoft.com/,并将页面访问请求中的https://proxy.com/web1/neti_1_http_sns.neusoft.com_80/替换为http://sns.neusoft.com/。

S211:网关设备将替换后页面访问请求发送至对应的服务器后,接收页面访问响应。

S212:基于S209中的标签的类别,对该页面访问响应进行处理。

本申请实施例能够基于对服务器返回的页面访问响应的解析,实现动态授权,不存在枚举外链信息以及授权信息更新不及时的问题。

装置实施例

基于上述描述内容,本申请实施例还提供了一种授权装置,参考图3,为本申请实施例提供的一种授权装置的结构示意图,所述装置应用于网关设备,所述装置包括:

第一解析模块301,用于接收来自任一服务器的页面访问响应后,对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名;其中,所述页面访问响应为针对客户端发送的任一页面访问请求返回的响应;

匹配模块302,用于在确定所述页面访问响应中携带需要再次访问的域名,且所述域名未经授权时,将所述域名与预先配置的动态授权信息进行匹配;

替换模块303,用于在所述域名与所述动态授权信息匹配成功时,利用根据预设规则生成的动态URL路径替换所述页面访问响应中的所述域名,并记录所述动态URL路径与所述域名的对应关系;

返回模块304,用于将所述页面访问响应返回至所述客户端,以便所述客户端根据所述页面访问响应中的所述动态URL路径再次访问对应的资源。

另外,所述装置还包括:

第二解析模块,用于对所述页面访问请求进行解析,以确定所述页面访问请求中已被标记的标签的类别;

相应的,所述第一解析模块,具体用于:

根据所述标签的类别对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名。

一种可选的实施方式中,所述网关设备安装有html引擎、JS引擎和CSS引擎,所述第二解析模块,包括:

第一解析子模块,用于在所述标签的类别为html标签时,利用所述html引擎、所述JS引擎和所述CSS引擎,对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名;

第二解析子模块,用于在所述标签的类别为JS标签时,利用所述JS引擎对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名;

第三解析子模块,用于在所述标签的类别为CSS标签时,利用所述CSS引擎对所述页面访问响应进行解析,以确定所述页面访问响应中是否携带需要再次访问的域名。

具体的,所述第二解析子模块,包括:

第四解析子模块,用于在所述标签的类别为JS标签时,利用所述JS引擎对所述页面访问响应进行解析,得到JS脚本文件;

替换子模块,用于为所述JS脚本文件构造语法树,并将所述语法树中位于最底层的页面请求发送函数替换为预设函数;其中,所述预设函数用于在客户端运行所述JS脚本文件时确定所述JS脚本文件中是否携带需要再次访问的域名。

其中,所述第一解析模块,包括:

第五解析子模块,用于接收来自任一服务器的页面访问响应后,对所述页面访问响应进行解析,确定所述页面访问响应是否为重定向响应;

确定子模块,用于在所述页面访问响应为重定向响应时,确定所述页面访问响应的头部header中是否携带需要再次访问的域名。

所述第二解析子模块,包括:

第六解析子模块,用于利用所述html引擎对所述页面访问响应进行流式解析,以确定所述页面访问响应中是否携带需要再次访问的域名。

另外,所述装置还包括:

标记模块,用于将所述页面访问响应中携带的标签的类别进行标记,以便所述客户端基于已被标记类别的标签再次访问所述域名对应的资源。

本申请实施例提供的授权装置中,对来自服务器的页面访问响应进行解析,确定其是否携带需要再次访问的域名,如果存在且未经授权,则通过匹配预先设置的动态授权信息的方式确定该域名是否需要进行动态授权,如果需要对该域名进行动态授权,则利用根据预设规则生成的动态URL路径替换页面访问响应中的该域名,并记录该动态URL路径与该域名的对应关系,最终将该页面访问响应返回至对应的客户端,以便该客户端能够实现对动态授权资源的访问。本申请实施例能够基于对服务器返回的页面访问响应的解析,实现动态授权,不存在枚举外链信息以及授权信息更新不及时的问题。

另外,本申请实施例还提供了一种授权设备,参见图4所示,可以包括:

处理器401、存储器402、输入装置403和输出装置404。授权设备中的处理器401的数量可以一个或多个,图4中以一个处理器为例。在本发明的一些实施例中,处理器401、存储器402、输入装置403和输出装置404可通过总线或其它方式连接,其中,图4中以通过总线连接为例。

存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行授权设备的各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。输入装置403可用于接收输入的数字或字符信息,以及产生与授权设备的用户设置以及功能控制有关的信号输入。

具体在本实施例中,处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现上述授权方法中的各种功能。

另外,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行上述的授权方法。

可以理解的是,对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本申请实施例所提供的一种授权方法、装置、设备及网络设备测试系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1