CN112134960A - 一种数据请求方法及装置 - Google Patents

一种数据请求方法及装置 Download PDF

Info

Publication number
CN112134960A
CN112134960A CN202011016463.9A CN202011016463A CN112134960A CN 112134960 A CN112134960 A CN 112134960A CN 202011016463 A CN202011016463 A CN 202011016463A CN 112134960 A CN112134960 A CN 112134960A
Authority
CN
China
Prior art keywords
client
redirection
address
http request
request message
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.)
Granted
Application number
CN202011016463.9A
Other languages
English (en)
Other versions
CN112134960B (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 Security Technologies Co Ltd
Original Assignee
New H3C Security 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 New H3C Security Technologies Co Ltd filed Critical New H3C Security Technologies Co Ltd
Priority to CN202011016463.9A priority Critical patent/CN112134960B/zh
Publication of CN112134960A publication Critical patent/CN112134960A/zh
Application granted granted Critical
Publication of CN112134960B publication Critical patent/CN112134960B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供了一种数据请求方法及装置,涉及互联网通信技术领域,应用于代理端,上述方法包括:接收客户端与代理端建立通信连接后发送的、用于请求目标数据的第一HTTP请求报文;根据第一HTTP请求报文的目的地址生成重定向地址,并向客户端发送携带重定向地址的重定向报文;接收客户端与代理端重新建立通信连接后发送的、用于请求目标数据的第二HTTP请求报文;判断第二HTTP请求报文是否携带重定向地址;若为是,在与服务端建立通信连接之后,根据目的地址,从服务端获得目标数据,向客户端发送目标数据。应用本发明实施例提供的方案能够减少服务端响应攻击客户端的数据请求消耗的计算资源,及时响应非攻击客户端的数据请求。

Description

一种数据请求方法及装置
技术领域
本发明涉及互联网通信技术领域,特别是涉及一种数据请求方法及装置。
背景技术
客户端可以基于HTTP(Hyper Text Transfer Protocol,超文本传输协议)与服务端通信,从服务端获得其所需要的数据,例如,网页数据等。
然而,一些客户端具有攻击性,以下简称攻击客户端,会对服务端发起HTTP攻击,即不断地向服务端请求数据,这种情况下,会导致服务端在响应攻击客户端的数据请求方面消耗大量的计算资源,而难以及时响应非攻击客户端的数据请求。
发明内容
本发明实施例的目的在于提供一种数据请求方法及装置,以减少服务端在响应攻击客户端的数据请求方面消耗的计算资源,及时响应非攻击客户端的数据请求。具体技术方案如下:
第一方面,本发明实施例提供了一种数据请求方法,应用于代理端,所述方法包括:
接收客户端与所述代理端建立通信连接后发送的、用于请求目标数据的第一HTTP请求报文;
根据所述第一HTTP请求报文的目的地址生成重定向地址,并向所述客户端发送携带所述重定向地址的重定向报文,其中,所述重定向报文,用于指示所述客户端断开与所述代理端间已建立的通信连接;
接收所述客户端与所述代理端重新建立通信连接后发送的、用于请求所述目标数据的第二HTTP请求报文;
判断所述第二HTTP请求报文是否携带所述重定向地址;
若为是,则在与服务端建立通信连接之后,根据所述目的地址,从所述服务端获得所述目标数据,并向所述客户端发送所述目标数据。
本发明的一个实施例中,在所述根据所述第一HTTP请求报文的目的地址生成重定向地址之后,还包括:
记录所述目的地址与重定向地址之间的对应关系;
则,所述在与服务端建立通信连接之后,根据所述目的地址,从所述服务端获得所述目标数据,包括:
在与服务端建立通信连接之后,确定所述重定向地址在所述对应关系中对应的目的地址;
根据所确定的目的地址,从服务端获得所述目标数据。
本发明的一个实施例中,所述在与服务端建立通信连接之后,根据所述目的地址,从所述服务端获得所述目标数据,包括:
在与服务端建立通信连接之后,根据所述第二HTTP请求报文,生成用于请求所述目标数据的第三HTTP请求报文,其中,所述第三HTTP请求报文的目的地址为:所述第一HTTP请求报文的目的地址;
向服务端发送所述第三HTTP请求报文;
接收所述服务端反馈的所述目标数据。
本发明的一个实施例中,所述根据所述第一HTTP请求报文的目的地址生成重定向地址,并向所述客户端发送携带所述重定向地址的重定向报文,包括:
若所述客户端的标识不在攻击客户端列表中、且不在非攻击客户端列表中,则根据所述第一HTTP请求报文中包含的目的地址生成重定向地址,并向所述客户端发送携带所述重定向地址的重定向报文;
所述方法还包括:
若所述第二HTTP请求报文携带所述重定向地址,则将所述客户端的标识增加至所述非攻击客户端列表;
若所述第二HTTP请求报文未携带所述重定向地址,则将所述客户端的标识增加至所述攻击客户端列表。
本发明的一个实施例中,所述根据所述第一HTTP请求报文的目的地址生成重定向地址,包括:
根据所述第一HTTP请求报文的五元组信息生成重定向字符串,将所述第一目的地址与所述重定向字符串进行组合得到所述重定向地址。
第二方面,本发明实施例提供了一种数据请求系统,所述系统包括:客户端、代理端与服务端;
所述客户端,用于在与所述代理端建立通信连接后,向所述代理端发送第一HTTP请求报文;
所述代理端,用于接收所述客户端发送的所述第一HTTP请求报文;根据所述第一HTTP请求报文的目的地址生成重定向地址,并向所述客户端发送携带所述重定向地址的重定向报文,其中,所述重定向报文,用于指示所述客户端断开与所述代理端间已建立的通信连接;
所述客户端,用于接收所述代理端发送的重定向报文;在断开与所述代理端间已建立的通信连接、并重新建立通信连接后,根据所述重定向报文携带的重定向地址,向所述代理端发送用于请求所述目标数据的第二HTTP请求报文;
所述代理端,用于接收所述客户端发送的所述第二HTTP请求报文;判断所述第二HTTP请求报文是否携带所述重定向地址;若为是,则在与服务端建立通信连接之后,根据所述目的地址,向所述服务端请求所述目标数据;
所述服务端,用于向所述代理端发送所述目标数据;
所述代理端,用于接收所述服务端发送的所述目标数据;向所述客户端发送所述目标数据;
所述客户端,用于接收所述代理端发送的所述目标数据。
本发明的一个实施例中,所述代理端,还用于:
记录所述目的地址与重定向地址之间的对应关系;
则,所述在与服务端建立通信连接之后,根据所述目的地址,向所述服务端请求所述目标数据,包括:
在与服务端建立通信连接之后,确定所述重定向地址在所述对应关系中对应的目的地址;
根据所确定的目的地址,向所述服务端请求所述目标数据。
本发明的一个实施例中,所述根据所述目的地址,向所述服务端请求所述目标数据,包括:
根据所述第二HTTP请求报文,生成用于请求所述目标数据的第三HTTP请求报文,其中,所述第三HTTP请求报文的目的地址为:所述第一HTTP请求报文的目的地址;
向所述服务端发送所述第三HTTP请求报文。
本发明的一个实施例中,所述根据所述第一HTTP请求报文的目的地址生成重定向地址,并向所述客户端发送携带所述重定向地址的重定向报文,包括:
若所述客户端的标识不在攻击客户端列表中、且不在非攻击客户端列表中,则根据所述第一HTTP请求报文中包含的目的地址生成重定向地址,并向所述客户端发送携带所述重定向地址的重定向报文;
所述代理端还用于:
若所述第二HTTP请求报文携带所述重定向地址,则将所述客户端的标识增加至所述非攻击客户端列表;
若所述第二HTTP请求报文未携带所述重定向地址,则将所述客户端的标识增加至所述攻击客户端列表。
本发明的一个实施例中,所述根据所述第一HTTP请求报文的目的地址生成重定向地址,包括:
根据所述第一HTTP请求报文的五元组信息生成重定向字符串,将所述第一目的地址与所述重定向字符串进行组合得到所述重定向地址。
第三方面,本发明实施例提供了一种数据请求装置,应用于代理端,所述装置包括:
第一报文接收模块,用于接收客户端与所述代理端建立通信连接后发送的、用于请求目标数据的第一HTTP请求报文;
报文发送模块,用于根据所述第一HTTP请求报文的目的地址生成重定向地址,并向所述客户端发送携带所述重定向地址的重定向报文,其中,所述重定向报文,用于指示所述客户端断开与所述代理端间已建立的通信连接;
第二报文接收模块,用于接收所述客户端与所述代理端重新建立通信连接后发送的、用于请求所述目标数据的第二HTTP请求报文;
地址判断模块,用于判断所述第二HTTP请求报文是否携带所述重定向地址;
数据发送模块,用于在所述地址判断模块的判断结果为所述第二HTTP请求报文携带所述重定向地址的情况下,则在与服务端建立通信连接之后,根据所述目的地址,从所述服务端获得所述目标数据,并向所述客户端发送所述目标数据。
本发明的一个实施例中,所述装置还包括:
关系记录模块,用于记录所述目的地址与重定向地址之间的对应关系;
则,所述数据发送模块,具体用于:
在所述地址判断模块的判断结果为所述第二HTTP请求报文携带所述重定向地址的情况下,在与服务端建立通信连接之后,确定所述重定向地址在所述对应关系中对应的目的地址;
根据所确定的目的地址,从服务端获得所述目标数据,并向所述客户端发送所述目标数据。
本发明的一个实施例中,所述数据发送模块,具体用于:
在所述地址判断模块的判断结果为所述第二HTTP请求报文携带所述重定向地址的情况下,在与服务端建立通信连接之后,根据所述第二HTTP请求报文,生成用于请求所述目标数据的第三HTTP请求报文,其中,所述第三HTTP请求报文的目的地址为:所述第一HTTP请求报文的目的地址;
向服务端发送所述第三HTTP请求报文;
接收所述服务端反馈的所述目标数据,并向所述客户端发送所述目标数据。
本发明的一个实施例中,所述报文发送模块,具体用于:
若所述客户端的标识不在攻击客户端列表中、且不在非攻击客户端列表中,则根据所述第一HTTP请求报文中包含的目的地址生成重定向地址,并向所述客户端发送携带所述重定向地址的重定向报文;
所述装置还包括:
第一列表增加模块,用于若所述第二HTTP请求报文携带所述重定向地址,则将所述客户端的标识增加至所述非攻击客户端列表;
第二列表增加模块,用于若所述第二HTTP请求报文未携带所述重定向地址,则将所述客户端的标识增加至所述攻击客户端列表。
本发明的一个实施例中,所述报文发送模块,具体用于:
根据所述第一HTTP请求报文的五元组信息生成重定向字符串,将所述第一目的地址与所述重定向字符串进行组合得到所述重定向地址,并向所述客户端发送携带所述重定向地址的重定向报文。
第四方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面任一所述的方法步骤。
第五方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一所述的方法步骤。
第六方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的方法步骤。
本发明实施例有益效果:
本发明实施例提供的方案中,代理端接收到客户端发送的、用于请求目标数据的第一HTTP请求报文之后,根据第一HTTP请求报文的目的地址生成重定向地址,向客户端发送携带重定向地址的重定向报文。客户端接收到重定向报文后,断开客户端与代理端之间的通信连接,并重新与代理端之间建立通信连接。代理端接收客户端发送的、用于请求目标数据的第二HTTP请求报文,判断第二HTTP请求报文是否携带重定向地址。若为是,则认为上述客户端不是攻击客户端,则在与服务端建立通信连接之后,根据目的地址,从服务端获得目标数据,并向客户端发送目标数据。
由以上可见,由于攻击客户端不会对代理端发送的重定向报文做出响应,也就是不会在接收到重定向报文后断开客户端与代理端之间的通信连接,并重新与代理端建立通信连接,向代理端发送携带重定向地址的第二HTTP请求报文。因此攻击客户端在接收到代理端发送的重定向报文后,发送的第二HTTP请求报文不会携带重定向地址。若代理端接收到的第二HTTP请求报文携带重定向地址,则说明上述客户端是非攻击客户端,客户端能够获得所请求的数据。因此,应用本发明实施例提供的方案能够确定客户端是否为攻击客户端,仅在客户端是非攻击客户端的情况下,代理端才协助客户端从服务端中请求数据。因此服务端不需要响应攻击客户端的数据请求,减少了服务端响应攻击客户端造成的计算资源消耗,能够及时响应非攻击客户端的数据请求。另一方面,在验证客户端是否为攻击客户端的过程中,代理端仅向客户端发送一次重定向报文,因此在对客户端进行验证的过程中代理端消耗的计算资源较少。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的第一种数据请求方法的流程示意图;
图2为本发明实施例提供的一种数据请求过程中报文交互的信令流程图;
图3为本发明实施例提供的第二种数据请求方法的流程示意图;
图4为本发明实施例提供的第三种数据请求方法的流程示意图;
图5为本发明实施例提供的第四种数据请求方法的流程示意图;
图6为本发明实施例提供的一种数据请求系统的结构示意图;
图7为本发明实施例提供的一种数据请求方法的信令流程图;
图8为本发明实施例提供的一种数据请求装置的结构示意图;
图9为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于若服务端在响应攻击客户端的数据请求方面消耗大量的计算资源,会难以及时响应非攻击客户端的数据请求。为了减少服务端在响应攻击客户端的数据请求方面消耗的计算资源,及时响应非攻击客户端的数据请求,本发明实施例提供了一种数据请求方法及装置。
本发明的一个实施例中,提供了一种数据请求方法,应用于代理端,上述方法包括:
接收客户端与上述代理端建立通信连接后发送的、用于请求目标数据的第一HTTP请求报文。
根据上述第一HTTP请求报文的目的地址生成重定向地址,并向上述客户端发送携带上述重定向地址的重定向报文,其中,上述重定向报文,用于指示上述客户端断开与上述代理端间已建立的通信连接。
接收上述客户端与上述代理端重新建立通信连接后发送的、用于请求上述目标数据的第二HTTP请求报文。
判断上述第二HTTP请求报文是否携带上述重定向地址。
若为是,则在与服务端建立通信连接之后,根据上述目的地址,从上述服务端获得上述目标数据,并向上述客户端发送上述目标数据。
由以上可见,由于攻击客户端不会对代理端发送的重定向报文做出响应,也就是不会在接收到重定向报文后断开客户端与代理端之间的通信连接,并重新与代理端建立通信连接,向代理端发送携带重定向地址的第二HTTP请求报文。因此攻击客户端在接收到代理端发送的重定向报文后,发送的第二HTTP请求报文不会携带重定向地址。若代理端接收到的第二HTTP请求报文携带重定向地址,则说明上述客户端是非攻击客户端,客户端能够获得所请求的数据。因此,应用本发明实施例提供的方案能够确定客户端是否为攻击客户端,仅在客户端是非攻击客户端的情况下,代理端才协助客户端从服务端中请求数据。因此服务端不需要响应攻击客户端的数据请求,减少了服务端响应攻击客户端造成的计算资源消耗,能够及时响应非攻击客户端的数据请求。另一方面,在验证客户端是否为攻击客户端的过程中,代理端仅向客户端发送一次重定向报文,因此在对客户端进行验证的过程中代理端消耗的计算资源较少。
参见图1,本发明实施例提供了第一种数据请求方法的流程示意图,应用于代理端,上述方法包括以下步骤S101-S105。
具体的,上述代理端用于代理客户端向服务端发起的数据请求。上述代理端与服务端可以对应于不同的设备,也就是,代理端和服务端分别设置于不同的设备,这种情况下,代理端与服务端之间进行数据交互也就是设置有代理端的设备与设置有服务端的设备之间进行数据交互。
例如,上述代理端可以设置于具有网络代理功能的服务器,记为服务器1,上述服务端可以设置于用于向用户提供业务的服务器,记为服务器2,这种情况下,上述代理端与服务端进行数据交互时,相当于服务器1和服务器2进行数据交互。
上述代理端与服务端还可以对应于相同的设备,也就是,代理端与服务端设置于同一设备,这种情况下,代理端和服务端可以被认为是上述设备中的不同功能模块,代理端与服务端进行数据交互时需通过上述设备的处理器实现代理端与服务端之间的数据交互。
例如,上述代理端和服务端均设置于服务器3,其中,服务器3具有网络代理功能,也能够向用户提供业务,这种情况下,上述网络代理功能可以通过代理端实现,向用户提供业务的功能可以通过服务端实现,可以通过服务器3的处理器实现代理端与服务端之间的数据交互。
S101:接收客户端与上述代理端建立通信连接后发送的、用于请求目标数据的第一HTTP请求报文。
由于请求目标数据的请求报文是HTTP报文,即上述请求目标数据的过程是基于HTTP协议进行的,HTTP协议是基于传输层的TCP(Transmission Control Protocol,传输控制协议)的协议,因此客户端与代理端建立的通信连接为TCP连接。
具体的,可以通过三次握手的过程建立客户端与上述代理端之间的TCP连接。
客户端向代理端发送携带seq值的SYN(Synchronize Sequence Numbers,同步序列编号)报文请求建立TCP连接,例如,其中seq值为x。代理端接收到客户端发送的SYN报文后,需要确认客户端发送的SYN报文,向客户端反馈携带seq值与ack值的SYN+ACK(Acknowledge character,确认字符)报文,其中,ack值为x+1,seq值为根据客户端发送的SYN报文中携带的五元组信息生成的数据包序号cookie。客户端接收到代理端发送的SYN+ACK报文后,再向代理端发送ACK报文,其中,ACK报文中携带的ack值为cookie+1。代理端接收到客户端发送的ACK报文,并确定ack值为cookie+1之后,确定客户端与代理端之间成功建立TCP连接。
具体的,上述五元组信息为SYN报文中包含的源IP地址,源端口,目的IP地址,目的端口和传输层协议信息。
由于代理端发送的SYN+ACK报文中seq值为cookie值,因此客户端向代理端发送ACK报文之后,代理端确定ACK报文中的ack值是否为cookie+1的过程可以被称为cookie验证。在客户端通过cookie验证之后,客户端与代理端之间再次进行TCP连接时,可以不再重新进行cookie验证,这样代理端向客户端发送的SYN+ACK报文中的seq值可以不是根据客户端发送的SYN报文中包含的五元组生成的cookie值,可以是其他随机值。
另外,第一HTTP请求报文可以为GET请求报文或POST请求报文等。
S102:根据上述第一HTTP请求报文的目的地址生成重定向地址,并向上述客户端发送携带上述重定向地址的重定向报文。
其中,上述重定向报文,用于指示上述客户端断开与上述代理端间已建立的通信连接。
具体的,上述第一目的地址为客户端所请求的目标数据的地址,上述第一目的地址可以以URI(Uniform Resource Identifier,统一资源标识符)的形式表示。本发明的一个实施例中,可以根据上述第一HTTP请求报文的五元组信息生成重定向字符串,将上述第一目的地址与上述重定向字符串进行组合得到重定向地址。
具体的,可以将五元组中的源IP地址、源端口、目的IP地址、目的端口和传输层协议信息中的至少一种作为上述重定向字符串。可以将上述重定向字符串添加到上述第一目的地址之后或者之前,得到重定向地址。
由于不同客户端发送的第一HTTP请求报文的五元组信息不同,因此根据五元组信息生成的重定向字符串不同,将第一目的地址与重定向字符串进行组合得到的重定向地址不同。
客户端在接收到上述重定向报文之后可以向代理端发送FIN报文,用于发起断开客户端与代理端之间的通信连接的过程。代理端接收到客户端发送的FIN报文之后可以对接收到的FIN报文进行响应,向客户端发送RST报文,用于重置通信连接,从而完成断开客户端与代理端间的通信连接的过程。
S103:接收上述客户端与上述代理端重新建立通信连接后发送的、用于请求上述目标数据的第二HTTP请求报文。
具体的,上述客户端与代理端之间的通信连接断开后,客户端与上述代理端可以重新进行三次握手的过程建立通信连接。另外,上述第二HTTP请求报文与第一HTTP请求报文用于请求的数据相同,客户端响应代理端发送的重定向报文之后依旧请求上述目标数据。第一HTTP请求报文与第二HTTP请求报文的区别在于,第一HTTP请求报文是根据目的地址请求目标数据,也就是,第一HTTP请求报文的目的地址是目标数据的地址,而第二HTTP请求报文是根据重定向地址请求上述目标数据,也就是,第二HTTP请求报文携带上述重定向地址。
S104:判断上述第二HTTP请求报文是否携带上述重定向地址。
若为是,则说明上述客户端响应了上述代理端发送的重定向报文,根据重定向报文携带的重定向地址,重新发起对目标数据的请求,因此上述客户端为非攻击客户端,非攻击客户端向服务端请求数据属于正常的数据请求,不会浪费服务端的计算资源,因此可以执行步骤S105。
否则,说明上述客户端没有响应上述代理端发送的重定向报文,也就是客户端没有断开与代理端之间的通信连接,没有重新与代理端建立通信连接,向代理端发送的第二HTTP请求报文也没有携带重定向地址,上述客户端为攻击客户端,攻击客户端向服务端请求数据属于非正常的数据请求,会浪费服务端的计算资源,因此结束流程。
S105:在与服务端建立通信连接之后,根据上述目的地址,从上述服务端获得上述目标数据,并向上述客户端发送上述目标数据。
具体的,第一目的地址是目标数据在服务端中的地址,因此需要根据第一目的地址请求上述目标数据。
其中,可以获得服务端发送的包含上述目标数据的报文,从而从服务端获得上述目标数据,并向客户端发送包含上述目标数据的报文,从而实现向上述客户端发送目标数据的过程。
本发明的一个实施例中,代理端与服务端之间可以通过TCP三次握手的过程建立通信连接,服务端向代理端发送用于表示客户端能够向服务端发送数据的数据量的窗口值,代理端将接收到的窗口值发送到客户端,这样客户端可以根据接收到的窗口值确定自身能够向服务端发送的数据的数据量,根据上述窗口值向服务器发送数据。
另外,代理端可以根据上述目的地址向服务端发送用于请求目标数据的HTTP请求报文,服务端根据接收到的HTTP请求报文向上述代理端反馈服务端中存储的目标数据,代理端接收到上述目标数据之后,向上述客户端发送上述目标数据,使得客户端能够获得客户端所请求的目标数据。最后客户端与代理端之间通过基于TCP的四次挥手的过程断开通信连接,代理端与服务端之间也通过基于TCP的四次挥手的过程断开通信连接。
由以上可见,由于攻击客户端不会对代理端发送的重定向报文做出响应,也就是不会在接收到重定向报文后断开客户端与代理端之间的通信连接,并重新与代理端建立通信连接,向代理端发送携带重定向地址的第二HTTP请求报文。因此攻击客户端在接收到代理端发送的重定向报文后,发送的第二HTTP请求报文不会携带重定向地址。若代理端接收到的第二HTTP请求报文携带重定向地址,则说明上述客户端是非攻击客户端,客户端能够获得所请求的数据。因此,应用本发明实施例提供的方案能够确定客户端是否为攻击客户端,仅在客户端是非攻击客户端的情况下,代理端才协助客户端从服务端中请求数据。因此服务端不需要响应攻击客户端的数据请求,减少了服务端响应攻击客户端造成的计算资源消耗,能够及时响应非攻击客户端的数据请求。另一方面,在验证客户端是否为攻击客户端的过程中,代理端仅向客户端发送一次重定向报文,因此在对客户端进行验证的过程中代理端消耗的计算资源较少。
参见图2,本发明实施例提供了一种数据请求过程中报文交互的信令流程图,以HTTP GET请求为例,结合图2所示的报文交互信令流程图对数据请求过程进行说明。
S201:客户端向代理端发送SYN报文,其中,SYN报文中携带seq值,且该值表示为x。
S202:代理端向客户端发送SYN+ACK报文,其中,SYN+ACK报文中携带seq值与ack值,且seq值为cookie,ack值为x+1。
S203:客户端向代理端发送ACK报文,其中,ACK报文中携带ack值,且该值为cookie+1。
至此,成功建立客户端与代理端之间的通信连接。
S204:客户端向代理端发送携带URI的HTTP GET请求报文。
S205:代理端向客户端发送携带URI+string的Redirect报文,其中,URI为目的地址,string为重定向字符串,URI+string为重定向地址。
S206:客户端向代理端发送FIN报文。
S207:代理端向客户端发送RST报文。
通过上述S206和S207,断开了客户端与代理端之间的通信连接。
S208:客户端向代理端发送SYN报文。
S209:代理端向客户端发送SYN+ACK报文。
S210:客户端向代理端发送ACK报文。
通过上述S208-S210,重新建立客户端与代理端之间的通信连接。
S211:客户端向代理端发送携带URI+string的HTTP GET请求报文。由于上述HTTPGET请求报文携带的是重定向地址URI+string,因此上述客户端为非攻击客户端。
S212:代理端向服务端发送SYN报文。
S213:服务端向代理端发送SYN+ACK报文。
S214:代理端向服务端发送ACK报文。
通过上述S212-S214,建立代理端与服务端之间的通信连接。
S215:服务端向代理端发送携带窗口值n的ACK报文。
S216:代理端向客户端发送携带窗口值n的ACK报文。
通过上述S215与S216,客户端接收到服务端发送的窗口值n,客户端可以根据接收到的窗口值n确定自身能够向服务端发送的数据的数据量为n。
S217:代理端向服务端发送携带URI的HTTP GET请求报文。
S218:服务端向代理端发送携带200OK与目标数据的目标数据报文。其中,200OK用于标识目标数据请求成功。
S219:代理端向客户端发送携带200OK与目标数据的目标数据报文。
通过上述S217-S219,客户端接收到服务端发送的目标数据。
S220:客户端与代理端之间进行FIN四次挥手过程。
通过上述S220,成功断开客户端与服务器端之间的通信连接。
S221:代理端与服务端之间进行FIN四次挥手过程。
通过上述S221,成功断开代理端与服务端之间的通信连接。
参见图3,本发明实施例提供了第二种数据请求方法的流程示意图,与前述图1所示的实施例相比,上述步骤S102可以通过以下步骤S102A实现。
S102A:根据上述第一HTTP请求报文的目的地址生成重定向地址,记录上述目的地址与重定向地址之间的对应关系,并向上述客户端发送携带上述重定向地址的重定向报文。
具体的,可以以列表的形式将上述目的地址与重定向地址存储在列表的同一行中,用于表示上述目的地址与重定向地址之间存在对应关系。
另外,也可以将上述目的地址与重定向地址存储于数据库中,以重定向地址为主键,目的地址为值,从而表示上述目的地址与重定向地址之间的对应关系。
还可以通过其他形式记录上述目的地址与重定向地址之间的对应关系。
上述步骤S105可以通过步骤S105A-S105B实现。
S105A:在与服务端建立通信连接之后,确定上述重定向地址在上述对应关系中对应的目的地址。
具体的,可以查找所记录的对应关系中的重定向地址,从而确定重定向地址对应的目的地址。上述重定向地址在上述对应关系中对应的目的地址是所记录的、客户端发送的、用于请求上述目标数据的第一HTTP请求报文的目的地址。
S105B:根据所确定的目的地址,从服务端获得上述目标数据,并向上述客户端发送上述目标数据。
由以上可见,本发明实施例提供的方案中,代理端通过所记录的目的地址与重定向地址之间的对应关系,可以直接根据重定向地址确定目的地址,不需要进行复杂的数据处理,根据对应关系确定目的地址的效率较高。并且记录目的地址与重定向地址所需的数据存储空间往往较少,对存储空间的影响较小。
参见图4,本发明实施例提供了第三种数据请求方法的流程示意图,与前述图1所示的实施例相比,上述步骤S105可以通过以下步骤S105C-S105E实现。
S105C:在与服务端建立通信连接之后,根据上述第二HTTP请求报文,生成用于请求上述目标数据的第三HTTP请求报文。
其中,上述第三HTTP请求报文的目的地址为:上述第一HTTP请求报文的目的地址。
本发明的一个实施例中,可以将第二HTTP请求报文的目的地址从重定向地址更改为上述目的地址,从而生成第三HTTP请求报文。
也可以根据第二HTTP请求报文中除目的地址之外的其他信息,生成除目的地址之外,其他信息均与第二HTTP请求报文相同的第三HTTP请求报文。
具体的,代理端与服务端可以通过TCP三次握手的过程建立通信连接。
S105D:向服务端发送上述第三HTTP请求报文。
S105E:接收上述服务端反馈的上述目标数据,并向上述客户端发送上述目标数据。
具体的,上述服务端可以向代理端反馈响应报文,响应报文中携带有目标数据与表示目标数据请求成功的标识,也就是说服务端可以通过响应报文向代理端反馈的目标数据。代理端接收到服务端发送的响应报文后再向上述客户端发送响应报文,从而实现向上述客户端发送上述目标数据的过程。
上述表示目标数据请求成功的标识可以为200OK。
由以上可见,代理端在确定客户端是非攻击报文后,直接向服务端发送第三HTTP请求报文请求目标数据,在接收到服务端发送的目标数据报文后,向客户端发送目标数据,便可以使得客户端获得上述目标数据。在本发明实施例提供的方案中,客户端不需要重新发送新的用于请求上述目标数据的HTTP请求报文,因此减少了数据请求过程中客户端与代理端之间需要执行的步骤,提高了数据请求过程的效率。
参见图5,本发明实施例提供了第四种数据请求方法的流程示意图,与前述图1所示的实施例相比,上述步骤S102可以通过以下步骤S102B实现。
S102B:若上述客户端的标识不在攻击客户端列表中、且不在非攻击客户端列表中,则根据上述第一HTTP请求报文中包含的目的地址生成重定向地址,并向上述客户端发送携带上述重定向地址的重定向报文。
其中,上述攻击客户端列表中记录有被验证为攻击客户端的客户端的标识,上述非攻击客户端列表中记录有被验证为非攻击客户端的客户端的标识。
具体的,上述客户端的标识可以为客户端的名称、IP(Internet Protocol,互联网协议)地址或MAC(Media Access Control,媒体存取控制)地址等。
若上述客户端的标识不在攻击客户端列表、且不在非攻击客户端列表,则说明上述客户端还未被验证,因此可以对客户端是否属于攻击客户端进行验证,执行根据上述第一HTTP请求报文中包含的目的地址生成重定向地址,并向上述客户端发送携带上述重定向地址的重定向报文的步骤,以对客户端进行验证。
另外,上述方法还可以包括:
S106:若上述第二HTTP请求报文携带上述重定向地址,则将上述客户端的标识增加至上述非攻击客户端列表。
具体的,若上述第二HTTP请求报文携带上述重定向地址,则认为上述客户端为非攻击客户端,可以将上述客户端的标识记录到上述非攻击客户端列表中。
S107:若上述第二HTTP请求报文未携带上述重定向地址,则将上述客户端的标识增加至上述攻击客户端列表。
具体的,若上述第二HTTP请求报文未携带上述重定向地址,则认为上述客户端为攻击客户端,可以将上述客户端的标识记录到上述攻击客户端列表中。
由以上可见,在上述客户端的标识不在攻击客户端列表、且不在非攻击客户端列表的情况下,才向客户端发送重定向报文,对客户端是否为攻击客户端进行验证,因此可以减少需要进行验证的客户端的数量,降低代理端对客户端进行验证时消耗的计算资源。
本发明的另一个实施例中,若上述客户端的标识在攻击客户端列表,则认为上述客户端为已确定的攻击客户端,为了防止攻击客户端的数据请求消耗服务端的计算资源,上述代理端可以结束数据请求流程。
若上述客户端的标识在非攻击客户端列表,则认为上述客户端为已确定的非攻击客户端,因此可以不需要再次对客户端进行验证,在执行上述步骤S101之后,可以直接执行上述步骤S105。由于不需要对客户端进行验证,因此可以提高客户端进行数据请求的效率。
与前述应用于代理端的数据请求方法相对应,本发明实施例还提供了一种数据请求系统。
参见图6,本发明实施例提供了一种数据请求系统的结构示意图。上述系统包括:客户端601、代理端602与服务端603。
参见图7,本发明实施例提供了一种数据请求方法的信令流程图,下面结合图7对图6所示数据请求系统的工作流程进行说明。
S701:上述客户端601在与上述代理端602建立通信连接后,向上述代理端602发送第一HTTP请求报文。
S702:上述代理端602根据上述第一HTTP请求报文的目的地址生成重定向地址。
S703:代理端602向上述客户端601发送携带上述重定向地址的重定向报文。
其中,上述重定向报文,用于指示上述客户端601断开与上述代理端602间已建立的通信连接。
S704:上述客户端601在断开与上述代理端602间已建立的通信连接、并重新建立通信连接后,根据上述重定向报文携带的重定向地址,向上述代理端602发送用于请求上述目标数据的第二HTTP请求报文。
S705:上述代理端602判断上述第二HTTP请求报文是否携带上述重定向地址。
S706:在上述步骤S705的判断结果为是的情况下,上述代理端602在与上述服务端603建立通信连接之后,根据上述目的地址,向上述服务端603请求上述目标数据。
S707:上述服务端603向上述代理端602发送上述目标数据。
S708:上述代理端602向上述客户端601发送上述目标数据。
由以上可见,由于攻击客户端不会对代理端发送的重定向报文做出响应,也就是不会在接收到重定向报文后断开客户端与代理端之间的通信连接,并重新与代理端建立通信连接,向代理端发送携带重定向地址的第二HTTP请求报文。因此攻击客户端在接收到代理端发送的重定向报文后,发送的第二HTTP请求报文不会携带重定向地址。若代理端接收到的第二HTTP请求报文携带重定向地址,则说明上述客户端是非攻击客户端,客户端能够获得所请求的数据。因此,应用本发明实施例提供的方案能够确定客户端是否为攻击客户端,仅在客户端是非攻击客户端的情况下,代理端才协助客户端从服务端中请求数据。因此服务端不需要响应攻击客户端的数据请求,减少了服务端响应攻击客户端造成的计算资源消耗,能够及时响应非攻击客户端的数据请求。另一方面,在验证客户端是否为攻击客户端的过程中,代理端仅向客户端发送一次重定向报文,因此在对客户端进行验证的过程中代理端消耗的计算资源较少。
本发明的一个实施例中,上述代理端602,还用于:
记录所述目的地址与重定向地址之间的对应关系;
则,所述在与服务端建立通信连接之后,根据所述目的地址,向所述服务端603请求所述目标数据,包括:
在与服务端建立通信连接之后,确定所述重定向地址在所述对应关系中对应的目的地址;
根据所确定的目的地址,向所述服务端603请求所述目标数据。
由以上可见,本发明实施例提供的方案中,代理端通过所记录的目的地址与重定向地址之间的对应关系,可以直接根据重定向地址确定目的地址,不需要进行复杂的数据处理,根据对应关系确定目的地址的效率较高。并且记录目的地址与重定向地址所需的数据存储空间往往较少,对存储空间的影响较小。
本发明的一个实施例中,所述根据所述目的地址,向所述服务端请求所述目标数据,包括:
根据所述第二HTTP请求报文,生成用于请求所述目标数据的第三HTTP请求报文,其中,所述第三HTTP请求报文的目的地址为:所述第一HTTP请求报文的目的地址;
向所述服务端603发送所述第三HTTP请求报文。
由以上可见,代理端在确定客户端是非攻击报文后,直接向服务端发送第三HTTP请求报文请求目标数据,在接收到服务端发送的目标数据报文后,向客户端发送目标数据,便可以使得客户端获得上述目标数据。在本发明实施例提供的方案中,客户端不需要重新发送新的用于请求上述目标数据的HTTP请求报文,因此减少了数据请求过程中客户端与代理端之间需要执行的步骤,提高了数据请求过程的效率。
本发明的一个实施例中,所述根据所述第一HTTP请求报文的目的地址生成重定向地址,并向所述客户端发送携带所述重定向地址的重定向报文,包括:
若所述客户端601的标识不在攻击客户端列表中、且不在非攻击客户端列表中,则根据所述第一HTTP请求报文中包含的目的地址生成重定向地址,并向所述客户端601发送携带所述重定向地址的重定向报文;
上述代理端602还用于:
若所述第二HTTP请求报文携带所述重定向地址,则将所述客户端601的标识增加至所述非攻击客户端列表;
若所述第二HTTP请求报文未携带所述重定向地址,则将所述客户端601的标识增加至所述攻击客户端列表。
由以上可见,在上述客户端的标识不在攻击客户端列表、且不在非攻击客户端列表的情况下,才向客户端发送重定向报文,对客户端是否为攻击客户端进行验证,因此可以减少需要进行验证的客户端的数量,降低代理端对客户端进行验证时消耗的计算资源。
本发明的一个实施例中,所述根据所述第一HTTP请求报文的目的地址生成重定向地址,包括:
根据所述第一HTTP请求报文的五元组信息生成重定向字符串,将所述第一目的地址与所述重定向字符串进行组合得到所述重定向地址。
上述数据请求系统实施例与上述数据请求方法实施例相似,在此不再赘述。
与前述数据请求方法相对应,本发明还提供了一种数据请求装置。
参见图8,本发明实施例提供了一种数据请求装置的结构示意图,应用于代理端,所述代理端用于代理客户端向服务端发起的数据请求,上述装置包括:
第一报文接收模块801,用于接收客户端与所述代理端建立通信连接后发送的、用于请求目标数据的第一HTTP请求报文;
报文发送模块802,用于根据所述第一HTTP请求报文的目的地址生成重定向地址,并向所述客户端发送携带所述重定向地址的重定向报文,其中,所述重定向报文,用于指示所述客户端断开与所述代理端间已建立的通信连接;
第二报文接收模块803,用于接收所述客户端与所述代理端重新建立通信连接后发送的、用于请求所述目标数据的第二HTTP请求报文;
地址判断模块804,用于判断所述第二HTTP请求报文是否携带所述重定向地址;
数据发送模块805,用于在所述地址判断模块804的判断结果为所述第二HTTP请求报文携带所述重定向地址的情况下,则在与服务端建立通信连接之后,根据所述目的地址,从所述服务端获得所述目标数据,并向所述客户端发送所述目标数据。
由以上可见,由于攻击客户端不会对代理端发送的重定向报文做出响应,也就是不会在接收到重定向报文后断开客户端与代理端之间的通信连接,并重新与代理端建立通信连接,向代理端发送携带重定向地址的第二HTTP请求报文。因此攻击客户端在接收到代理端发送的重定向报文后,发送的第二HTTP请求报文不会携带重定向地址。若代理端接收到的第二HTTP请求报文携带重定向地址,则说明上述客户端是非攻击客户端,客户端能够获得所请求的数据。因此,应用本发明实施例提供的方案能够确定客户端是否为攻击客户端,仅在客户端是非攻击客户端的情况下,代理端才协助客户端从服务端中请求数据。因此服务端不需要响应攻击客户端的数据请求,减少了服务端响应攻击客户端造成的计算资源消耗,能够及时响应非攻击客户端的数据请求。另一方面,在验证客户端是否为攻击客户端的过程中,代理端仅向客户端发送一次重定向报文,因此在对客户端进行验证的过程中代理端消耗的计算资源较少。
本发明的一个实施例中,所述装置还包括:
关系记录模块,用于记录所述目的地址与重定向地址之间的对应关系;
则所述数据发送模块805,具体用于:
在所述地址判断模块的判断结果为所述第二HTTP请求报文携带所述重定向地址的情况下,在与服务端建立通信连接之后,确定所述重定向地址在所述对应关系中对应的目的地址;
根据所确定的目的地址,从服务端获得所述目标数据,并向所述客户端发送所述目标数据。
由以上可见,本发明实施例提供的方案中,代理端通过所记录的目的地址与重定向地址之间的对应关系,可以直接根据重定向地址确定目的地址,不需要进行复杂的数据处理,根据对应关系确定目的地址的效率较高。并且记录目的地址与重定向地址所需的数据存储空间往往较少,对存储空间的影响较小。
本发明的一个实施例中,所述数据发送模块805,具体用于:
在所述地址判断模块的判断结果为所述第二HTTP请求报文携带所述重定向地址的情况下,在与服务端建立通信连接之后,根据所述第二HTTP请求报文,生成用于请求所述目标数据的第三HTTP请求报文,其中,所述第三HTTP请求报文的目的地址为:所述第一HTTP请求报文的目的地址;
向服务端发送所述第三HTTP请求报文;
接收所述服务端反馈的所述目标数据,并向所述客户端发送所述目标数据。
由以上可见,代理端在确定客户端是非攻击报文后,直接向服务端发送第三HTTP请求报文请求目标数据,在接收到服务端发送的目标数据报文后,向客户端发送目标数据,便可以使得客户端获得上述目标数据。在本发明实施例提供的方案中,客户端不需要重新发送新的用于请求上述目标数据的HTTP请求报文,因此减少了数据请求过程中客户端与代理端之间需要执行的步骤,提高了数据请求过程的效率。
本发明的一个实施例中,上述报文发送模块802,具体用于:
若所述客户端的标识不在攻击客户端列表中、且不在非攻击客户端列表中,则根据所述第一HTTP请求报文中包含的目的地址生成重定向地址,并向所述客户端发送携带所述重定向地址的重定向报文;
所述装置还包括:
第一列表增加模块,用于若所述第二HTTP请求报文携带所述重定向地址,则将所述客户端的标识增加至所述非攻击客户端列表;
第二列表增加模块,用于若所述第二HTTP请求报文未携带所述重定向地址,则将所述客户端的标识增加至所述攻击客户端列表。
由以上可见,在上述客户端的标识不在攻击客户端列表、且不在非攻击客户端列表的情况下,才向客户端发送重定向报文,对客户端是否为攻击客户端进行验证,因此可以减少需要进行验证的客户端的数量,降低代理端对客户端进行验证时消耗的计算资源。
本发明的一个实施例中,所述报文发送模块802,具体用于:
根据所述第一HTTP请求报文的五元组信息生成重定向字符串,将所述第一目的地址与所述重定向字符串进行组合得到所述重定向地址,并向所述客户端发送携带所述重定向地址的重定向报文。
本发明实施例还提供了一种电子设备,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,
存储器903,用于存放计算机程序;
处理器901,用于执行存储器903上所存放的程序时,实现上述数据请求方法任一所述的方法步骤。
应用本发明实施例提供的电子设备作为代理端进行数据请求时,由于攻击客户端不会对代理端发送的重定向报文做出响应,也就是不会在接收到重定向报文后断开客户端与代理端之间的通信连接,并重新与代理端建立通信连接,向代理端发送携带重定向地址的第二HTTP请求报文。因此攻击客户端在接收到代理端发送的重定向报文后,发送的第二HTTP请求报文不会携带重定向地址。若代理端接收到的第二HTTP请求报文携带重定向地址,则说明上述客户端是非攻击客户端,客户端能够获得所请求的数据。因此,应用本发明实施例提供的方案能够确定客户端是否为攻击客户端,仅在客户端是非攻击客户端的情况下,代理端才协助客户端从服务端中请求数据。因此服务端不需要响应攻击客户端的数据请求,减少了服务端响应攻击客户端造成的计算资源消耗,能够及时响应非攻击客户端的数据请求。另一方面,在验证客户端是否为攻击客户端的过程中,代理端仅向客户端发送一次重定向报文,因此在对客户端进行验证的过程中代理端消耗的计算资源较少。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一数据请求方法的步骤。
执行本发明实施例提供的应用于代理端的计算机可读存储介质中存储的计算机程序进行数据请求的情况下,由于攻击客户端不会对代理端发送的重定向报文做出响应,也就是不会在接收到重定向报文后断开客户端与代理端之间的通信连接,并重新与代理端建立通信连接,向代理端发送携带重定向地址的第二HTTP请求报文。因此攻击客户端在接收到代理端发送的重定向报文后,发送的第二HTTP请求报文不会携带重定向地址。若代理端接收到的第二HTTP请求报文携带重定向地址,则说明上述客户端是非攻击客户端,客户端能够获得所请求的数据。因此,应用本发明实施例提供的方案能够确定客户端是否为攻击客户端,仅在客户端是非攻击客户端的情况下,代理端才协助客户端从服务端中请求数据。因此服务端不需要响应攻击客户端的数据请求,减少了服务端响应攻击客户端造成的计算资源消耗,能够及时响应非攻击客户端的数据请求。另一方面,在验证客户端是否为攻击客户端的过程中,代理端仅向客户端发送一次重定向报文,因此在对客户端进行验证的过程中代理端消耗的计算资源较少。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一数据请求方法。
执行本发明实施例提供的应用于代理端的计算机程序进行数据请求的情况下,由于攻击客户端不会对代理端发送的重定向报文做出响应,也就是不会在接收到重定向报文后断开客户端与代理端之间的通信连接,并重新与代理端建立通信连接,向代理端发送携带重定向地址的第二HTTP请求报文。因此攻击客户端在接收到代理端发送的重定向报文后,发送的第二HTTP请求报文不会携带重定向地址。若代理端接收到的第二HTTP请求报文携带重定向地址,则说明上述客户端是非攻击客户端,客户端能够获得所请求的数据。因此,应用本发明实施例提供的方案能够确定客户端是否为攻击客户端,仅在客户端是非攻击客户端的情况下,代理端才协助客户端从服务端中请求数据。因此服务端不需要响应攻击客户端的数据请求,减少了服务端响应攻击客户端造成的计算资源消耗,能够及时响应非攻击客户端的数据请求。另一方面,在验证客户端是否为攻击客户端的过程中,代理端仅向客户端发送一次重定向报文,因此在对客户端进行验证的过程中代理端消耗的计算资源较少。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统、装置、电子设备、计算机可读存储介质和计算机程序产品而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种数据请求方法,其特征在于,应用于代理端,所述方法包括:
接收客户端与所述代理端建立通信连接后发送的、用于请求目标数据的第一HTTP请求报文;
根据所述第一HTTP请求报文的目的地址生成重定向地址,并向所述客户端发送携带所述重定向地址的重定向报文,其中,所述重定向报文,用于指示所述客户端断开与所述代理端之间已建立的通信连接;
接收所述客户端与所述代理端重新建立通信连接后发送的、用于请求所述目标数据的第二HTTP请求报文;
判断所述第二HTTP请求报文是否携带所述重定向地址;
若为是,则在与服务端建立通信连接之后,根据所述目的地址,从所述服务端获得所述目标数据,并向所述客户端发送所述目标数据。
2.根据权利要求1所述的方法,其特征在于,在所述根据所述第一HTTP请求报文的目的地址生成重定向地址之后,还包括:
记录所述目的地址与重定向地址之间的对应关系;
则,所述在与服务端建立通信连接之后,根据所述目的地址,从所述服务端获得所述目标数据,包括:
在与服务端建立通信连接之后,确定所述重定向地址在所述对应关系中对应的目的地址;
根据所确定的目的地址,从服务端获得所述目标数据。
3.根据权利要求1所述的方法,其特征在于,所述在与服务端建立通信连接之后,根据所述目的地址,从所述服务端获得所述目标数据,包括:
在与服务端建立通信连接之后,根据所述第二HTTP请求报文,生成用于请求所述目标数据的第三HTTP请求报文,其中,所述第三HTTP请求报文的目的地址为:所述第一HTTP请求报文的目的地址;
向服务端发送所述第三HTTP请求报文;
接收所述服务端反馈的所述目标数据。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述根据所述第一HTTP请求报文的目的地址生成重定向地址,并向所述客户端发送携带所述重定向地址的重定向报文,包括:
若所述客户端的标识不在攻击客户端列表中、且不在非攻击客户端列表中,则根据所述第一HTTP请求报文中包含的目的地址生成重定向地址,并向所述客户端发送携带所述重定向地址的重定向报文;
所述方法还包括:
若所述第二HTTP请求报文携带所述重定向地址,则将所述客户端的标识增加至所述非攻击客户端列表;
若所述第二HTTP请求报文未携带所述重定向地址,则将所述客户端的标识增加至所述攻击客户端列表。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第一HTTP请求报文的目的地址生成重定向地址,包括:
根据所述第一HTTP请求报文的五元组信息生成重定向字符串,将所述第一目的地址与所述重定向字符串进行组合得到所述重定向地址。
6.一种数据请求装置,其特征在于,应用于代理端,所述装置包括:
第一报文接收模块,用于接收客户端与所述代理端建立通信连接后发送的、用于请求目标数据的第一HTTP请求报文;
报文发送模块,用于根据所述第一HTTP请求报文的目的地址生成重定向地址,并向所述客户端发送携带所述重定向地址的重定向报文,其中,所述重定向报文,用于指示所述客户端断开与所述代理端之间已建立的通信连接;
第二报文接收模块,用于接收所述客户端与所述代理端重新建立通信连接后发送的、用于请求所述目标数据的第二HTTP请求报文;
地址判断模块,用于判断所述第二HTTP请求报文是否携带所述重定向地址;
数据发送模块,用于在所述地址判断模块的判断结果为所述第二HTTP请求报文携带所述重定向地址的情况下,则在与服务端建立通信连接之后,根据所述目的地址,从所述服务端获得所述目标数据,并向所述客户端发送所述目标数据。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
关系记录模块,用于记录所述目的地址与重定向地址之间的对应关系;
则,所述数据发送模块,具体用于:
在所述地址判断模块的判断结果为所述第二HTTP请求报文携带所述重定向地址的情况下,在与服务端建立通信连接之后,确定所述重定向地址在所述对应关系中对应的目的地址;
根据所确定的目的地址,从服务端获得所述目标数据,并向所述客户端发送所述目标数据。
8.根据权利要求6所述的装置,其特征在于,所述数据发送模块,具体用于:
在所述地址判断模块的判断结果为所述第二HTTP请求报文携带所述重定向地址的情况下,在与服务端建立通信连接之后,根据所述第二HTTP请求报文,生成用于请求所述目标数据的第三HTTP请求报文,其中,所述第三HTTP请求报文的目的地址为:所述第一HTTP请求报文的目的地址;
向服务端发送所述第三HTTP请求报文;
接收所述服务端反馈的所述目标数据,并向所述客户端发送所述目标数据。
9.根据权利要求6-8中任一项所述的装置,其特征在于,所述报文发送模块,具体用于:
若所述客户端的标识不在攻击客户端列表中、且不在非攻击客户端列表中,则根据所述第一HTTP请求报文中包含的目的地址生成重定向地址,并向所述客户端发送携带所述重定向地址的重定向报文;
所述装置还包括:
第一列表增加模块,用于若所述第二HTTP请求报文携带所述重定向地址,则将所述客户端的标识增加至所述非攻击客户端列表;
第二列表增加模块,用于若所述第二HTTP请求报文未携带所述重定向地址,则将所述客户端的标识增加至所述攻击客户端列表。
10.根据权利要求6所述的装置,其特征在于,所述报文发送模块,具体用于:
根据所述第一HTTP请求报文的五元组信息生成重定向字符串,将所述第一目的地址与所述重定向字符串进行组合得到所述重定向地址,并向所述客户端发送携带所述重定向地址的重定向报文。
CN202011016463.9A 2020-09-24 2020-09-24 一种数据请求方法及装置 Active CN112134960B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011016463.9A CN112134960B (zh) 2020-09-24 2020-09-24 一种数据请求方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011016463.9A CN112134960B (zh) 2020-09-24 2020-09-24 一种数据请求方法及装置

Publications (2)

Publication Number Publication Date
CN112134960A true CN112134960A (zh) 2020-12-25
CN112134960B CN112134960B (zh) 2022-03-22

Family

ID=73839556

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011016463.9A Active CN112134960B (zh) 2020-09-24 2020-09-24 一种数据请求方法及装置

Country Status (1)

Country Link
CN (1) CN112134960B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113626736A (zh) * 2021-08-10 2021-11-09 迈普通信技术股份有限公司 Url特征学习方法、装置、电子设备及计算机可读存储介质
CN114726917A (zh) * 2022-05-12 2022-07-08 北京搜狐新动力信息技术有限公司 一种重定向处理方法及系统
CN115150475A (zh) * 2021-03-31 2022-10-04 贵州白山云科技股份有限公司 一种调度方法、装置、介质及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030889A (zh) * 2007-04-18 2007-09-05 杭州华为三康技术有限公司 防范cc攻击的方法和设备
CN101478387A (zh) * 2008-12-31 2009-07-08 成都市华为赛门铁克科技有限公司 超文本传输协议攻击防御方法、装置和系统
US20110231511A1 (en) * 2008-08-26 2011-09-22 Alibaba Group Holding Limited In-Server Redirection of HTTP Requests
CN102413105A (zh) * 2010-09-25 2012-04-11 杭州华三通信技术有限公司 防范cc攻击的方法和装置
CN109618004A (zh) * 2019-01-16 2019-04-12 新华三技术有限公司 一种报文转发方法及装置
CN109995760A (zh) * 2019-03-06 2019-07-09 西安交大捷普网络科技有限公司 Http洪水攻击的防御方法与系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101030889A (zh) * 2007-04-18 2007-09-05 杭州华为三康技术有限公司 防范cc攻击的方法和设备
US20110231511A1 (en) * 2008-08-26 2011-09-22 Alibaba Group Holding Limited In-Server Redirection of HTTP Requests
CN101478387A (zh) * 2008-12-31 2009-07-08 成都市华为赛门铁克科技有限公司 超文本传输协议攻击防御方法、装置和系统
CN102413105A (zh) * 2010-09-25 2012-04-11 杭州华三通信技术有限公司 防范cc攻击的方法和装置
CN109618004A (zh) * 2019-01-16 2019-04-12 新华三技术有限公司 一种报文转发方法及装置
CN109995760A (zh) * 2019-03-06 2019-07-09 西安交大捷普网络科技有限公司 Http洪水攻击的防御方法与系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115150475A (zh) * 2021-03-31 2022-10-04 贵州白山云科技股份有限公司 一种调度方法、装置、介质及设备
CN113626736A (zh) * 2021-08-10 2021-11-09 迈普通信技术股份有限公司 Url特征学习方法、装置、电子设备及计算机可读存储介质
CN113626736B (zh) * 2021-08-10 2023-11-17 迈普通信技术股份有限公司 Url特征学习方法、装置、电子设备及计算机可读存储介质
CN114726917A (zh) * 2022-05-12 2022-07-08 北京搜狐新动力信息技术有限公司 一种重定向处理方法及系统
CN114726917B (zh) * 2022-05-12 2022-09-20 北京搜狐新动力信息技术有限公司 一种重定向处理方法及系统

Also Published As

Publication number Publication date
CN112134960B (zh) 2022-03-22

Similar Documents

Publication Publication Date Title
CN112134960B (zh) 一种数据请求方法及装置
US20220407933A1 (en) Locality based content distribution
US9026616B2 (en) Content delivery reconciliation
US8448233B2 (en) Dealing with web attacks using cryptographically signed HTTP cookies
CN107046544B (zh) 一种识别对网站的非法访问请求的方法和装置
KR20220006623A (ko) 블록체인 합의 방법, 디바이스 및 시스템
US20240073274A1 (en) Accelerating connections to a host server
CN104796406A (zh) 一种应用识别方法及装置
US11019036B2 (en) Method for privacy protection
WO2014190841A1 (en) Data recovery method, device and system using same
CN113438256B (zh) 一种基于双层ssl的数据传输方法、系统和代理服务器
CN112910663B (zh) 消息广播和终端注册的方法、装置、设备和存储介质
US7689648B2 (en) Dynamic peer network extension bridge
WO2021029924A1 (en) Protecting the integrity of communications from client devices
CN111866214A (zh) 一种动态绑定网站域名的方法及系统
US10326819B2 (en) Method and apparatus for detecting access path
CN112839108B (zh) 连接建立方法、装置、设备、数据网络及存储介质
CN113225348B (zh) 请求防重放校验方法和装置
CN111917787B (zh) 请求检测方法、装置、电子设备和计算机可读存储介质
CN112202776A (zh) 源站防护方法和网络设备
CN106790150B (zh) 一种会话保持方法和装置
CN111049754B (zh) 数据通信方法、装置、设备和计算机可读存储介质
CN114553938B (zh) 一种通信报文的处理方法、装置、电子设备及存储介质
CN112543191B (zh) 一种负载均衡方法及装置
CN114598524B (zh) 检测代理工具的方法、装置、设备以及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant