具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明实施例一提供的代理网关防病毒实现方法的流程图,该方法可以由代理网关中设置的预分类器来执行,预分类器可以是代理网关中增设的硬件设备或者继承的软件模块,用于对待传输资源是否需要进行防病毒扫描进行预探测,而后按照是否需要进行扫描来分类。预分类器所执行的流 程如下:
步骤110、接收资源获取请求;
具体可以是预分类器在代理网关中拦截接收到的资源获取请求;
步骤120、根据资源获取请求向待传输资源所在网元发送预探测请求,以获取待传输资源的属性信息;
本步骤具体是预分类器主动对待传输资源的属性信息进行探测获取,资源获取请求一般来自客户端的从服务器下载资源的下载请求或向服务器上传的上传请求,当然,在具体应用中,也可以适用于服务器请求客户端传输数据的情况。或者可概括为,代理网关所代理的网元中,一个网元向另一个网元请求传输资源的情况,代理网关拦截该资源获取请求,构造并发送预探测请求,以请求获取该待传输资源的属性信息。
步骤130、基于防病毒策略,根据属性信息判断待传输资源是否需要进行防病毒扫描,若是,则执行步骤140,若否,则执行步骤150;
具体的防病毒策略可以根据需要针对属性信息进行设定,例如,属性信息可以取为待传输资源的大小、文件类型和文件名等,则相应的防病毒策略可以设定哪种类型的资源需要扫描、设定阈值以上大小的资源需要扫描等。
另外,在步骤130中,具体执行判断的操作可以由不同方式实现。例如,可以是预分类器基于本地存储的防病毒策略,根据属性信息判断待传输资源是否需要进行防病毒扫描,即判断操作完全在预分类器中完成;或者,还可以是预分类器将属性信息发送至外部服务器,以指示外部服务器基于防病毒策略,根据属性信息判断待传输资源是否需要进行防病毒扫描并返回判断结果,预分类器获取到判断结果可确定哪些待传输资源需要进行防病毒扫描。
步骤140、将随后获取到的待传输资源进行防病毒扫描;
本步骤中,预分类器具体可以将随后获取到的待传输资源流送入代理层的相应模块进行文件缓存和防病毒扫描。经过病毒扫描后的待传输资源可以根据设定的处理策略进行不同的处理,例如,当客户端发起的是下载请求时, 在一种情况下,可以将扫描之后的资源继续传输给客户端,在另一种情况下也可以因为病毒而丢弃下载文件,提示客户端下载失败。
步骤150、透传随后获取到的待传输资源;
本步骤可以是预分类器将该待传输资源流直接透传给真实的客户端或服务器,而无须送入代理层的相应模块进行处理。
本实施例提供了一种能够对待传输资源是否需要进行防病毒扫描进行预探测的技术方案。由于现有技术在代理网关处实现的防病毒扫描时,通常都需要将待扫描的文件上传至代理层,进行缓存,进而对缓存的文件进行防病毒扫描,因此缓存、防病毒扫描过程将占用很多上层资源和缓存空间,如占用了很多内存资源。本实施例的技术方案为预分类器在资源请求获取阶段即主动进行资源预探测,而后通过属性信息对待传输资源进行预探测,对于不需要进行防病毒扫描的可以直接透传,因而既实现了防病毒功能,又能够提高传输效率,减少对缓存、扫描和上层传输资源的浪费。
本实施例的技术方案可以适用于图2所示的网络架构,在代理网关中增设了预分类器,预分类器分别与上层的代理服务端和代理客户端相连,且在操作***层与真实的服务器和客户端相连,即将预分类器安装在底层收包模块和上层的代理层之间。在客户端需要向服务器上传文件,或从服务器下载文件之前,预分类器可以先拦截客户端的上传或下载请求,针对客户端需要上传或下载的待传输的文件主动探测获取其属性信息,对待传输的文件进行判断,根据判断结果将需要扫描的文件传输至代理服务端或代理客户端,进而提供给病毒扫描缓存模块进行防病毒扫描,不需要扫描的文件就可以直接透传给目的端,因此能够减小上层代理层的工作负荷。
本实施例的技术方案也适用于图3所示的网络架构。实际应用中,典型地防病毒保护主要是针对传输给用户的文件进行防病毒扫描,并且通常也是客户端向服务器发出资源获取请求的情况占绝大部分。图3所示的代理网关,预分类器与代理服务端相连,在判断出客户请求的待传输资源需要扫描时即 通过代理服务端提供给病毒扫描缓存模块进行防病毒扫描。
实施例二
图4为本发明实施例二提供的代理网关防病毒实现方法的流程图,本实施例具体为客户端从服务器下载文件的情况,包括如下步骤:
步骤410、客户端发送文件下载请求,即资源获取请求;
步骤420、预分类器拦截获取该下载请求,预分类器构造并向服务器发送预探测请求;
步骤430、预分类器接收服务器返回的待传输资源的属性信息;
步骤440、预分类器根据属性信息判断待传输资源是否应该进行防病毒扫描,若是,则执行步骤450,若否,则执行步骤460;
步骤450、预分类器在将文件下载请求发送给服务器之后,将服务器传输的文件送入代理层进行缓存和防病毒扫描,而后可以按照常规的处理方式对扫描后的文件进行处理,通常是经代理客户端和代理服务端将扫描后的文件传输给真实客户端;
步骤460、预分类器将服务器传输的文件直接透传给真实客户端。
本实施例的技术方案在下载请求阶段即主动进行资源预探测,而后通过属性信息对待传输资源进行预探测,对于不需要进行防病毒扫描的可以直接透传,因而既实现了防病毒功能,又能够提高传输效率,减少对缓存、扫描和上层传输资源的浪费。
实施例三
图5为本发明实施例三提供的代理网关防病毒实现方法的流程图,本实施例与实施例二类似,是客户端向服务器上传文件的情况,具体包括如下步骤:
步骤510、客户端发送文件上传请求,即资源上传请求;
步骤520、预分类器接收并拦截来自客户端的资源上传请求,向客户端发送获取待传输资源的属性信息的预探测请求,从而获取客户端返回的待传 输资源的属性信息;
步骤530、预分类器基于防病毒策略,根据属性信息判断待传输资源是否需要进行防病毒扫描,若是,则执行步骤540,若否,则执行步骤550;
步骤540、预分类器将随后获取到的待传输资源进行防病毒扫描;
本步骤中,具体可以将随后获取到的待传输资源流送入代理层的相应模块进行文件缓存和防病毒扫描。经过病毒扫描后的待传输资源可以根据设定的处理策略进行不同的处理,例如,在一种情况下,可以将扫描之后的资源继续传输给服务器端,在另一种情况下也可以因为病毒而丢弃该文件,提示客户端上传文件失败。本次上传流程结束;
步骤550、预分类器透传随后获取到的待传输资源。
本实施例的技术方案在上传请求阶段即主动进行资源预探测,而后通过属性信息对待传输资源进行预探测,对于不需要进行防病毒扫描的待传输资源可以直接透传,因而既实现了防病毒功能,又能够提高传输效率,减少对缓存、扫描和上层传输资源的浪费。
实施例四
图6为本发明实施例四提供的代理网关防病毒实现方法的信令流程图,本实施例可以以实施例二为基础,以实现超文本传输协议(HypertextTransfer Protocol,简称HTTP)数据包传输的情况为例进行说明。本发明实施例提供的代理网关防病毒实现方法可以包括如下步骤:
步骤601、真实的客户端通过代理网关的代理服务端和代理客户端向真实的服务器发送SYN消息;
步骤602、真实的服务器通过代理网关向真实的客户端返回SYN-ACK消息;
步骤603、真实的客户端通过代理网关向真实的服务器返回ACK消息;
上述步骤601~603即通过代理网关完成真实的客户端与服务器之间的握手,在此过程中未示出代理网关转发的细节。
步骤604、代理网关接收到客户端发送的资源获取请求(HTTP GETRequest),由预分类器拦截该资源获取请求;
步骤605~607、与步骤601~603类似,预分类器与真实的服务器之间进行一次握手交互(交互SYN、SYN-ACK和ACK消息),向服务器发起一个新的连接,从而为发起预探测请求作出准备,预分类器与服务器之间通过握手建立新的连接,避免对已建立的传输待传输资源的连接通道造成干扰;
步骤608、预分类器构建并向服务器发送预探测请求;
本实施例中预探测请求具体为HTTP HEAD请求,向服务器发送该HTTPHEAD请求,以请求获取待传输资源的文件大小作为属性信息;
步骤609、服务器根据HTTP HEAD请求,向预分类器返回相应的响应消息;
具体的,本实施例中的响应消息为HTTP Response,其中携带有待传输资源的文件大小信息;
步骤610、预分类器向服务器发送设置有范围字段(RANGE)的资源获取请求(HTTP GET with RNAGE Field)作为预探测请求;
其中,范围字段用于指示获取待传输资源中设定范围的字节,以该设定范围的字节中携带的信息作为属性信息。
具体应用中,可以设置为获取待传输资源的前64个字节,通常,文件的前64个字节对应的是待获取文件的文件类型,对于基于HTTP协议的文件传输,可以通过构造一个带“Range”字段的HTTP GET请求来获得待传输文件的相关信息。
步骤611、服务器根据HTTP GET请求,向预分类器返回相应的响应消息,即HTTP Response,其中携带有设定范围字节的信息;
上述HTTP HEAD请求和设置“Range”字段的资源获取请求(HTTP GET withRNAGE Field)均可作为预探测请求,预探测请求可以利用自定义消息获取需要的属性信息,也可以利用协议中的已有消息经一次或多次获取需要的属性 信息。
需要说明的是,上述步骤608和609,以及步骤610和611是分别获取属性信息的两种方式,在具体应用中,既可以同时采用,也可以只采用其中一种,两种获取属性信息方式的执行顺序不限。
步骤612、预分类器向服务器发送结束探测会话消息,具体可以是RESET消息;
步骤613、预分类器基于防病毒策略,根据属性信息判断待传输资源是否需要进行防病毒扫描,若否,则执行步骤614,若是,则执行步骤616;
步骤614、预分类器在操作***层将客户端发送的资源获取请求不经过代理层和防病毒扫描,直接透传至服务器,进入步骤615;
具体的,透传的实现方式之一可以是将传输控制协议(TransmissionControl Protocol,简称TCP)流置为不需要进行AV扫描的标志,后续该条数据流的所有报文将不会送到代理层,直接在收包模块透传给目标,即真实的客户端或服务端。
步骤615、预分类器在操作***层将服务器返回的响应(HTTP Response),即待传输资源的数据流不经过代理层和防病毒扫描,直接透传至客户端。
其中,资源获取请求及随后传输的资源在建立的同一个数据流中传输,该数据流可以用数据流的诸如目的地址、目的端口等五元组来标识。
步骤616、预分类器在操作***层将客户端发送的资源获取请求经过代理服务端提供至病毒扫描缓存模块进行防病毒扫描,进入步骤617;
步骤617、扫描后的资源获取请求经代理客户端向服务器发送,进入步骤618;
步骤618、服务器返回响应(HTTP Response)给代理客户端,从而将待传输资源的数据流提供给病毒扫描缓存模块进行防病毒扫描,进入步骤619;
步骤619、代理服务端将扫描后的资源发送给客户端。
由于每个待传输资源的流可能有多个数据包,所以可以分为多次响应, 将各个数据包分别进行传输,此时,可以执行多次步骤618和619。
在本实施例中,预分类器可以将随后获取到的待传输资源传输至代理层进行缓存并进行防病毒扫描。用于判断是否需扫描的属性信息包括但是不限于为文件大小、文件类型、文件名和/或文件作者等。对于现有的HTTP数据包,通常只要求获取待传输资源的前64个字节即可获知文件类型。
具体的防病毒策略可以根据需要进行设定。例如基于防病毒策略,根据属性信息判断待传输资源是否需要进行防病毒扫描的操作可以包括下述几种方式:
在一种情况下,可以根据属性信息中的文件大小判断该待传输资源的大小是否大于设定门限值,以确定是否需要进行防病毒扫描。具体的,由于代理网关的缓存空间通常有限,所以对于过大的文件无法进行缓存和扫描,可以直接进行透传。
在另一种情况下,还可以根据属性信息中的文件类型判断待传输资源的类型是否属于设定类型来确定是否需要对待传输资源进行防病毒扫描。对于哪些文件类型需要进行扫描可以由用户来设定,例如对于文档类的:*.txt、*.doc等即可以设置为无须扫描的类型。
需要说明的是,待传输资源的属性信息和防病毒策略的具体内容包括但不限于上述几种。例如,还可以通过探测待传输资源的前部数个字节、中部数个字节、后部数个字节等,进行哈希运算,与预设的匹配表进行匹配来判断是否需要对待传输资源进行扫描。
此外,还需要说明的是,本发明实施例中的病毒扫描方式并不限于通过在代理网关本地的病毒扫描缓存模块进行防病毒扫描,还可以将随后获取到的待传输资源发送至防病毒服务器进行防病毒扫描。
上述技术方案也并不限于HTTP协议,还可以适用于多种网络协议,并可以利用各种协议已有的消息来进行属性信息预探测。例如,对于文件传输协议(File Transfer Protocol,简称FTP),可以发送SIZE命令来请求获取 待传输资源的文件大小。
本发明实施例的技术方案通过对待传输资源进行预探测,识别是否需要进行防病毒扫描,从而将大部分不需要进行防病毒扫描的流量直接透传。从而降低了代理网关的资源压力,在不损失安全性的前提下保证了防病毒代理网关的传输性能,提高了用户上网的体验。
实施例五
图7为本发明实施例五提供的预分类器的结构示意图,该预分类器包括:探测获取模块50、属性获取模块10、策略判断模块20、扫描发起模块30和透传发起模块40。其中:
探测获取模块50,用于接收资源获取请求,并根据资源获取请求向待传输资源所在网元发送预探测请求;
具体的,资源获取请求可以是来自客户端的下载请求或上传请求,也可以是服务器向客户端获取资源的相关请求。在基于不同的协议进行资源传输时,对应的可以利用协议中的已有消息作为预探测请求,例如待传输资源包括基于超文本传输协议的文件时,预探测请求可以包括设置有范围字段的资源获取请求,该范围字段用于指示获取待传输资源中设定范围的字节。
属性获取模块10,用于接收网元返回的待传输资源的属性信息;按照不同的防病毒策略以及预探测的需求,待传输资源的属性信息可以包括文件大小、文件类型、文件名和/或文件作者等信息。
策略判断模块20,用于基于防病毒策略,根据属性信息判断待传输资源是否需要进行防病毒扫描;
按照判断方式的不同,策略判断模块20可以具备不同的结构,优选的是,策略判断模块20包括本地判断单元21或外部判断单元22,其中:
本地判断单元21,用于基于本地存储的防病毒策略,根据属性信息判断待传输资源是否需要进行防病毒扫描,即预探测后的判断过程由预分类器自行完成。
外部判断单元22,用于将属性信息发送至外部服务器,以指示外部服务器基于防病毒策略,根据属性信息判断待传输资源是否需要进行防病毒扫描并返回判断结果。该方式即预分类器借助于外部服务器的判断功能来获取判断结果。
实际应用中,本地判断单元21和外部判断单元22可以只具有一个,也可以同时存在结合使用,按照预探测情况需要设定即可。
对于策略判断模块20,根据不同的属性信息和防病毒策略,可以执行不同的判断操作,例如,可以根据属性信息中的文件大小判断待传输资源的大小是否大于设定门限值,以确定是否需要进行防病毒扫描;和/或,还可以根据属性信息中的文件类型判断待传输资源的类型是否属于设定类型,以确定是否需要进行防病毒扫描。
扫描发起模块30,用于当策略判断模块20判断出需要进行防病毒扫描时,则将随后获取到的待传输资源进行防病毒扫描;
具体可以将随后获取到的待传输资源传输至代理层进行缓存并进行防病毒扫描,或者也可以是提供给其他防病毒服务器进行防病毒扫描,再获取扫描结果。根据扫描结果,没有病毒的文件可以进行传输,若有病毒或其他问题的则将文件丢弃。
透传发起模块40,用于当策略判断模块20判断出不需要进行防病毒扫描时,则透传随后获取到的待传输资源。
本实施例提供了一种能够对待传输资源是否需要进行防病毒扫描进行预探测的技术方案。本实施例的技术方案通过在资源请求获取阶段主动发送预探测请求来获取属性信息,再根据属性信息对待传输资源进行预探测,对于不需要进行防病毒扫描的可以直接透传,因而既实现了防病毒功能,又能够提高传输效率,减少对缓存、扫描和上层传输资源的浪费。
上述技术方案尤其适用于用户发起资源获取的这种常见情况,能够增强对用户获取资源的防病毒保护。
本发明实施例所提供的预分类器可以设置在代理网关中,具体可以执行 本发明实施例所提供代理网关防病毒实现方法,具备相应的功能模块,能够提高代理网关的传输效率,减少资源浪费。
本发明实施例还提供一种代理网关,包括代理客户端、代理服务端和病毒扫描缓存模块,病毒扫描缓存模块可设置在代理客户端和代理服务端之间,用于实现防病毒扫描。该代理网关还包括本发明任意实施例所提供的预分类器;该预分类器设置在代理客户端和代理服务端的下层,当策略判断模块判断出需要进行防病毒扫描时,则将随后获取到的待传输资源经代理客户端或代理服务端提供给病毒扫描缓存模块进行防病毒扫描。
本发明实施例所提供的代理网关能够减少代理层的工作负荷,减少资源浪费,进而加速代理网关的数据传输。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。