报文访问控制的方法及装置
技术领域
本申请涉及网络通信技术领域,尤其涉及报文访问控制的方法及装置。
背景技术
对于典型的Web应用来说,用户可以在终端Web浏览器的地址框中输入URL(Uniform Resource Locator,统一资源定位符)地址,从而访问对应Web网页,访问Web网页是基于HTTP(Hyper Text Transfer Protocol,超文本传输协议)协议实现的。基于网络安全或流量控制等考量因素,网络(比如企业网络)管理者需要对用户访问的Web网页进行控制。一种典型Web访问控制技术是URL白名单过滤技术,当用户要访问的Web网页的URL地址不在URL白名单中时,将阻断此次访问。URL白名单机制在一定程度上解决了Web访问控制的问题,但随着各种应用在开发技术上的个性,其也存在着适应性降低的问题。
发明内容
有鉴于此,本申请提供一种报文访问控制的方法及装置,以解决现有通过URL白名单过滤技术实现Web访问控制存在适应性降低的问题。
具体地,本申请是通过如下技术方案实现的:
根据本申请实施例的第一方面,提供一种报文访问控制的方法,所述方法应用在控制设备上,所述方法包括:
接收到终端访问网络应用所发送的报文;
判断所述报文是否为超文本传输协议HTTP报文;
如果所述报文是HTTP报文,则基于第一报文属性查找第一白名单;
若查找命中,则放行所述报文;若查找未命中,则继续基于第二报文属性查找第二白名单;
若查找第二白名单命中,则放行所述报文。
根据本申请实施例的第二方面,提供一种报文访问控制的装置,所述装置应用在控制设备上,所述装置包括:
接收单元,用于接收到终端访问网络应用所发送的报文;
判断单元,用于判断所述报文是否为超文本传输协议HTTP报文;
第一查找单元,用于在所述报文是HTTP报文时,基于第一报文属性查找第一白名单;
第一放行单元,用于在查找第一白名单命中时,放行所述报文;
第二查找单元,用于在查找第一白名单未命中时,基于第二报文属性查找第二白名单;
第二放行单元,用于在查找第二白名单命中时,放行所述报文。
本申请实施例中,当控制设备接收到终端访问网络应用发送的报文后,解析该报文,若该报文为HTTP报文,则通过第一白名单可以放行那些管理员允许的特殊的非Web应用,这些非Web应用也有的HTTP报文就不会因为无法命中第二白名单(通常为URL白名单)而被错误拒绝,以使终端正常访问该网络应用;若未命中第一白名单,则获取报文中携带的URL地址,根据该URL地址查找预先保存的记录了URL地址的第二白名单,若查找命中,则放行该报文,否则阻断该报文,从而实现了对终端访问网络应用的控制。
附图说明
图1是应用本申请一个实施例中报文访问控制的应用场景示意图;
图2是本申请报文访问控制的方法的一个实施例流程图;
图3是本申请报文访问控制的装置所在控制设备的一种硬件结构图;
图4是本申请报文访问控制的装置的一个实施例框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
现有技术中,终端用户访问Web应用时,比如请求一个Web页面,终端向Web服务器发送携带URL地址的HTTP报文,控制设备接收到该HTTP报文后,解析该HTTP报文,获取HTTP报文中携带的URL地址,根据该URL地址查找预先设置的URL白名单,若查找未命中,则可能阻断该报文,终端无法实现此次Web应用访问。然而各种网络应用层出不穷,在当下一些比较新的产品中,HTTP技术已经不局限于Web页面访问这样的应用了,当终端使用HTTP请求访问其他非Web应用时,终端向服务器发送的HTTP请求报文很可能会因为没有命中URL白名单被阻断,导致终端用户无法正常访问其他非Web应用,从而影响终端用户的体验。
为有效避免上述问题的发生,本申请提供了报文访问控制的方法及装置。请参考图1,其为本申请一个实施例中报文访问控制的应用场景示意图:该应用场景包括终端侧、控制设备和服务器侧,终端侧可以有多个终端,服务器侧可以有多个不同的服务器,终端侧通过网络接入控制设备,控制设备与公网内的服务器侧相连,可以理解的是,本实施例中的终端仅以电脑为例进行说明,实际应用中终端可以是手机或平板电脑等其他具备网络资源访问功能的终端。
请参考图2,其为本申请报文访问控制的方法的一个实施例流程图,应用在控制设备上,包括以下步骤:
步骤S201:接收到终端访问网络应用所发送的报文。
当用户通过终端访问网络应用时,终端会发送相应的报文,比如访问Web页面时会发送HTTP请求报文,当然访问其他应用时可能发送其他报文,比如FTP报文等。在本申请中,将所述网络应用划分为两种类型的应用,一种是Web应用,另一种是非Web应用。继续参考图1,假设当前的终端是终端A,其访问网络应用时向服务器端发送报文,该报文会先传输到控制设备,控制设备可能会根据安全需要对报文进行各种适当的安全处理。
步骤S202:判断所述报文是否为HTTP报文,如果是,则执行步骤S203,否则,结束流程。
当控制设备收到终端发送的报文后,可以通过解析该报文,获取报文中的目的端口值,通过该目的端口值判断报文是否为HTTP报文。一般来说,终端发送的HTTP请求报文的端口值为80等知名端口。当然也可以通过其他的方式来判断报文是否为HTTP报文。事实上,控制设备接收到来自终端的报文有很多种,HTTP报文只是其中一种,一般来说,不同类型的报文其对应的控制处理不尽相同,从逻辑上来看,可能进入不同的处理模块进行处理。对于其他类型报文的处理的更多细节可参考现有技术实现。
步骤S203:基于所述HTTP报文的第一报文属性查找第一白名单。
步骤S204:若查找命中,则放行所述报文;若查找未命中,则继续基于第二报文属性查找第二白名单。
在一个例子中,该第一报文属性是指HTTP报文的目的IP地址。值得注意的是,严格意义上来说,HTTP报文的目的IP地址是指HTTP报文外层IP封装中的目的IP地址,为了描述方便简化表述为HTTP报文的目的IP地址。若目的IP地址在白名单中查找命中,则此HTTP报文可以放行。如果没有命中,则继续步骤S204的处理。
在这一例子中,本申请使用目的IP地址可以区分出网络应用的类型。其背后的原理是相对于网络应用的数量来说,使用HTTP技术的非Web应用的数量是非常少的,而且这些使用HTTP技术的非Web应用的服务器的IP地址通常是固定的,因此目的IP地址往往能够准确表征一个使用HTTP技术的非Web应用。请参考表1,在实际使用过程中,管理员可以将X应用离线文件传输(比如QQ离线文件传输)的服务器的IP地址配置到第一白名单中,这样一来,基于HTTP报文的目的IP地址查找第一白名单会命中,说明允许终端用户实现此次访问网络应用,终端用户访问QQ文件服务器的报文将被放行。若查找第一白名单未命中,则有两种情况,一种情况是该报文所属的应用是Web应用,另一种情况是报文所属的应用是管理员不关心的非Web应用。此时将继续步骤S204的处理。
表1
这里值得注意的是,在本例子中第一白名单是指IP地址白名单,基于IP地址建立白名单本身是一个常见的技术,但是本申请中,IP地址白名单的使用前提是报文被确定为HTTP报文之后才会检查该IP地址白名单。传统技术中对于IP地址白名单的处理,通常在网络层面(第三层)处理,也就是说此时报文还没有被确定是否为HTTP报文。传统技术中报文的处理是自下而上的,传统IP地址白名单会位于下层。而本申请的技术方案可以与传统的技术方案兼容,也就是说,一个控制设备可以在网络层继续保持基于IP地址白名单的过滤机制,同时还可以利用本申请在确定报文为HTTP报文时使用本申请的IP地址白名单,这样一来,一个HTTP报文有可能经过两次IP地址白名单的过滤。两个IP地址白名单背后的意义是不同的,传统的IP地址白名单本质上是面向目标主机(比如服务器),并不关心这个目标主机提供什么网络应用。而本申请引入的白名单则更加关注网络应用是不是管理员所关心的。
步骤S205:若查找第二白名单命中,则放行所述报文。
在一个例子中,第二白名单为URL白名单,请参考表2的示例,若查找第二白名单命中,说明可以访问该URL地址对应的Web页面,那么,放行该报文,以使终端实现此次Web应用访问,若查找第二白名单未命中,则可以阻断该报文,从而不允许终端访问该URL地址对应的Web页面。
表2
www.baidu.com |
www.sina.com |
www.163.com |
…… |
应用上述实施例,当控制设备接收到终端访问网络应用发送的报文后,解析该报文,若该报文为HTTP报文,则通过第一白名单可以放行那些管理员允许的特殊的非Web应用,这些非Web应用也有的HTTP报文就不会因为无法命中第二白名单(通常为URL白名单)而被错误拒绝,以使终端正常访问该网络应用;若未命中第一白名单,则获取报文中携带的URL地址,根据该URL地址查找预先保存的记录了URL地址的第二白名单,若查找命中,则放行该报文,否则阻断该报文,从而实现了对终端访问网络应用的控制。在一个可选的实现方式中,控制设备阻断终端访问网络应用发送的报文后,可以生成阻断日志,且该阻断日志中可以包括阻断时间、阻断次数、阻断类型等信息。
此外值得注意的是,一般来说,目前还有一种容易想到的解决方案是将非Web应用中所使用的URL地址直接添加到第二白名单(本例中为URL白名单)中,但这种方式相对于本申请而言缺陷也是明显的。很多企业网络的控制设备(比如防火墙)上的URL白名单通常是由第三方提供的专业白名单,由于使用HTTP技术的非Web应用通常没有一个容易自动抓取的Web页面,因此第三方也难以将这些Web应用所使用的URL地址抓取到URL白名单中提供给企业。
通过以上描述可以发现,本申请在很大程度上避免了对终端访问网络应用造成错误阻断,导致终端用户无法正常访问应该被允许的网络应用。
与前述报文访问控制的方法的实施例相对应,本申请还提供了报文访问控制的装置的实施例。
本申请报文访问控制的装置的实施例可以应用在控制设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在控制设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本申请报文访问控制的装置所在控制设备的一种硬件结构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的控制设备通常根据该控制设备的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图4,为本申请报文访问控制的装置的一个实施例框图,所述装置包括:接收单元410、判断单元420、第一查找单元430、第一放行单元440、第二查找单元450、第二放行单元460。
其中,所述接收单元410,用于接收到终端访问网络应用所发送的报文;
所述判断单元420,用于判断所述报文是否为HTTP报文;
所述第一查找单元430,用于在所述报文是HTTP报文时,基于第一报文属性查找第一白名单;
所述第一放行单元440,用于在查找第一白名单命中时,放行所述报文;
所述第二查找单元450,用于在查找第一白名单未命中时,基于第二报文属性查找第二白名单;
所述第二放行单元460,用于在查找第二白名单命中时,放行所述报文。
在一个可选的实现方式中,所述第一报文属性可以为HTTP报文的IP地址,且所述IP地址为使用HTTP技术提供非Web应用的服务器的IP地址,所述第一白名单为IP地址白名单;所述非Web应用为具备文件传输能力的应用;所述第二报文属性为所述HTTP报文中所携带的URL地址,所述第二白名单为URL白名单。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。