CN112422429B - 数据请求处理方法和装置、存储介质和电子设备 - Google Patents

数据请求处理方法和装置、存储介质和电子设备 Download PDF

Info

Publication number
CN112422429B
CN112422429B CN202011297442.9A CN202011297442A CN112422429B CN 112422429 B CN112422429 B CN 112422429B CN 202011297442 A CN202011297442 A CN 202011297442A CN 112422429 B CN112422429 B CN 112422429B
Authority
CN
China
Prior art keywords
domain name
request
target domain
data request
data
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
CN202011297442.9A
Other languages
English (en)
Other versions
CN112422429A (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.)
Beike Technology Co Ltd
Original Assignee
Beike Technology 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 Beike Technology Co Ltd filed Critical Beike Technology Co Ltd
Priority to CN202011297442.9A priority Critical patent/CN112422429B/zh
Publication of CN112422429A publication Critical patent/CN112422429A/zh
Application granted granted Critical
Publication of CN112422429B publication Critical patent/CN112422429B/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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5053Lease time; Renewal aspects
    • 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
    • H04L63/126Applying verification of the received information the source of the received data

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)
  • Information Transfer Between Computers (AREA)

Abstract

本公开的实施例公开了一种数据请求处理方法、装置及计算机可读存储介质。该方法应用于流量转发设备,该方法包括:接收目的域名为流量转发设备的域名的数据请求;其中,数据请求中还于指定区域存储有目标域名,目标域名不同于流量转发设备的域名;根据预设域名名单,对目标域名进行校验;在对目标域名的校验通过的情况下,将数据请求的目的域名更新为目标域名;转发目的域名经更新后的数据请求。本公开的实施例无需为后端服务***中的各个服务器分别申请专用路径,实施起来非常便捷,且能够避免发生路径冲突,另外还有利于保证流量转发性能。

Description

数据请求处理方法和装置、存储介质和电子设备
技术领域
本公开涉及通信技术领域,尤其涉及一种数据请求处理方法和装置、存储介质和电子设备。
背景技术
在通信技术领域中,流量转发设备的应用非常广泛。流量转发设备目前主流的实现方式中,需要为流量转发设备对应的后端服务***中的各个服务器分别申请全局唯一的专用路径,且发送给流量转发设备的数据请求中需要携带path,以通过path标识相应的专用路径,path一般位于数据请求中的统一资源定位符(Uniform Resource Locator,URL)中。
需要指出的是,采用上述实现方式时,由于需要为各个服务器分别申请专用路径,实施起来非常繁琐,且可能会发生路径冲突,另外,path增加了URL的长度,增加了网关路由寻址所需的时间,从而会影响到流量转发性能。
发明内容
为了解决上述技术问题,提出了本公开。本公开的实施例提供了一种数据请求处理方法和装置、存储介质和电子设备。
根据本公开实施例的一个方面,提供了一种数据请求处理方法,应用于流量转发设备,所述方法包括:
接收目的域名为所述流量转发设备的域名的数据请求;其中,所述数据请求中还于指定区域存储有目标域名,所述目标域名不同于所述流量转发设备的域名;
根据预设域名名单,对所述目标域名进行校验;
在对所述目标域名的校验通过的情况下,将所述数据请求的目的域名更新为所述目标域名;
转发目的域名经更新后的所述数据请求。
在一个可选示例中,所述数据请求中还于所述指定区域存储有请求签名数据和请求生成时间戳;
所述在对所述目标域名的校验通过的情况下,将所述数据请求的目的域名更新为所述目标域名,包括:
在对所述目标域名的校验通过的情况下,获取所述目标域名对应的私钥;
根据所述目标域名对应的私钥、所述数据请求中的请求参数以及所述请求生成时间戳,进行签名处理,以得到签名处理结果;
根据所述签名处理结果,对所述请求签名数据进行校验;
在对所述请求签名数据的校验通过的情况下,将所述数据请求的目的域名更新为所述目标域名。
在一个可选示例中,所述预设域名名单包括预设域名白名单;
所述获取所述目标域名对应的私钥,包括:
根据预设记录中所记录的域名与私钥之间的对应关系,确定所述目标域名对应的私钥;
所述方法还包括:
向所述流量转发设备对应的后端服务***中添加新的服务器;
将所述新的服务器的域名添加至所述预设域名白名单中;
为所述新的服务器分配私钥,并向所述预设记录中添加所述新的服务器的域名与为所述新的服务器分配的私钥之间的对应关系。
在一个可选示例中,所述根据所述目标域名对应的私钥、所述数据请求中的请求参数以及所述请求生成时间戳,进行签名处理,以得到签名处理结果,包括:
确定所述数据请求中的所有请求参数中的每个请求参数各自对应的编码;
根据每个请求参数和每个请求参数对应的编码,确定每个请求参数对应的签名基础数据;
利用预设符号,连接所有请求参数对应的所有签名基础数据,以得到连接结果;
将所述目标域名对应的私钥、所述连接结果和所述请求生成时间戳进行拼接,以得到拼接结果;
采用预设签名算法,对所述拼接结果进行运算处理,以得到签名处理结果。
在一个可选示例中,所述数据请求中还于所述指定区域存储有请求生成时间戳;
所述在对所述目标域名的校验通过的情况下,将所述数据请求的目的域名更新为所述目标域名,包括:
获取当前时间戳;
在所述当前时间戳与所述请求生成时间戳之间的时间间隔小于预设时间间隔,且对所述目标域名的校验通过的情况下,将所述数据请求的目的域名更新为所述目标域名。
根据本公开实施例的另一个方面,提供了一种数据请求处理装置,应用于流量转发设备,所述装置包括:
接收模块,用于接收目的域名为所述流量转发设备的域名的数据请求;其中,所述数据请求中还于指定区域存储有目标域名,所述目标域名不同于所述流量转发设备的域名;
校验模块,用于根据预设域名名单,对所述目标域名进行校验;
更新模块,用于在对所述目标域名的校验通过的情况下,将所述数据请求的目的域名更新为所述目标域名;
转发模块,用于转发目的域名经更新后的所述数据请求。
在一个可选示例中,所述数据请求中还于所述指定区域存储有请求签名数据和请求生成时间戳;
所述更新模块,包括:
第一获取子模块,用于在对所述目标域名的校验通过的情况下,获取所述目标域名对应的私钥;
签名处理子模块,用于根据所述目标域名对应的私钥、所述数据请求中的请求参数以及所述请求生成时间戳,进行签名处理,以得到签名处理结果;
校验子模块,用于根据所述签名处理结果,对所述请求签名数据进行校验;
第一更新子模块,用于在对所述请求签名数据的校验通过的情况下,将所述数据请求的目的域名更新为所述目标域名。
在一个可选示例中,所述预设域名名单包括预设域名白名单;
所述第一获取子模块,具体用于:
根据预设记录中所记录的域名与私钥之间的对应关系,确定所述目标域名对应的私钥;
所述装置还包括:
第一添加模块,用于向所述流量转发设备对应的后端服务***中添加新的服务器;
第二添加模块,用于将所述新的服务器的域名添加至所述预设域名白名单中;
处理模块,用于为所述新的服务器分配私钥,并向所述预设记录中添加所述新的服务器的域名与为所述新的服务器分配的私钥之间的对应关系。
在一个可选示例中,所述签名处理子模块,包括:
第一确定单元,用于确定所述数据请求中的所有请求参数中的每个请求参数各自对应的编码;
第二确定单元,用于根据每个请求参数和每个请求参数对应的编码,确定每个请求参数对应的签名基础数据;
连接单元,用于利用预设符号,连接所有请求参数对应的所有签名基础数据,以得到连接结果;
拼接单元,用于将所述目标域名对应的私钥、所述连接结果和所述请求生成时间戳进行拼接,以得到拼接结果;
运算处理单元,用于采用预设签名算法,对所述拼接结果进行运算处理,以得到签名处理结果。
在一个可选示例中,所述数据请求中还于所述指定区域存储有请求生成时间戳;
所述更新模块,包括:
第二获取子模块,用于获取当前时间戳;
第二更新子模块,用于在所述当前时间戳与所述请求生成时间戳之间的时间间隔小于预设时间间隔,且对所述目标域名的校验通过的情况下,将所述数据请求的目的域名更新为所述目标域名。
根据本公开实施例的再一个方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述数据请求处理方法。
根据本公开实施例的又一个方面,提供了一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述数据请求处理方法。
本公开的实施例中,请求方可以发出目的域名为流量转发设备的域名的数据请求,数据请求的指定区域还可以存储有目标域名,目标域名可以为数据请求的真实目的端的域名。这样,在流量转发设备接收到数据请求之后,在根据预设域名名单,对目标域名进行校验,且校验通过的情况下,流量转发设备可以将数据请求的目的域名更新为目标域名,并转发目的域名经更新后的数据请求,这样,流量转发设备转发出去的数据请求最终就会被发送至数据请求的真实目的端处。可见,本公开的实施例中,通过令请求方发出的数据请求的域名为流量转发设备的域名,且令数据请求的指定区域存储目标域名,可以保证数据请求被流量转发设备接收到且被转发至正确的服务器处,与相关技术相比,本公开的实施例无需为后端服务***中的各个服务器分别申请专用路径,实施起来非常便捷,且能够避免发生路径冲突,另外,数据请求中无需携带path,这样能够避免由于path的携带造成网关路由寻址所需的时间增加,从而有利于保证流量转发性能。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开一示例性实施例提供的数据请求处理方法的流程示意图。
图2是本公开一示例性实施例中的数据请求处理原理图之一。
图3是本公开一示例性实施例中的数据请求处理原理图之二。
图4是本公开一示例性实施例提供的数据请求处理装置的结构示意图。
图5是本公开另一示例性实施例提供的数据请求处理装置的结构示意图。
图6是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于电子设备,电子设备具体可以为流量转发设备,电子设备可以在由计算机***执行的计算机***可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机***可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算***存储介质上。
示例性方法
图1是本公开一示例性实施例提供的数据请求处理方法的流程示意图。图1所示的方法应用于流量转发设备,图1所示的方法包括步骤101、步骤102、步骤103和步骤104,下面对各步骤分别进行说明。
步骤101,接收目的域名为流量转发设备的域名的数据请求;其中,数据请求中还于指定区域存储有目标域名,目标域名不同于流量转发设备的域名。
需要说明的是,流量转发设备可以与后端服务***对应,后端服务***中可以包括多台服务器,后端服务***中的不同服务器可以提供不同的数据服务,并且,流量转发设备和后端服务***中的每台服务器可以分别具有全局唯一的域名;其中,流量转发设备也可以称为网关设备,后端服务***也可以称为网关后***。
具体地,如图2、图3所示,后端服务***中可以包括四台服务器,分别是第一服务器、第二服务器、第三服务器、第四服务器;其中,第一服务器用于提供数据服务A,第二服务器用于提供数据服务B,第三服务器用于提供数据服务C,第四服务器用于提供数据服务D。
当用户需要使用后端服务***中的某一服务器提供的数据服务(假设其为目标数据服务)时,用户可以在终端设备上进行操作,以发起相应的数据请求;其中,数据请求中可以包括目的域名存储区域和指定区域,目的域名存储区域存储有流量转发设备的域名,指定区域存储有目标域名,目标域名可以为数据请求的真实目的端的域名,即能够提供目标数据服务的服务器的域名。可选地,数据请求可以为超文本传输协议(HyperText TransferProtocol,HTTP)请求,指定区域可以为HTTP请求中的请求头(即header)区域,指定区域存储的目标域名可以表示为ORIGIN_DOMAIN,目的域名存储区域可以为HTTP协议的结构体区域。
由于数据请求中的目的域名存储区域存储的是流量转发设备的域名,即数据请求的目的域名当前为流量转发设备,数据请求会被发送至流量转发设备处,这样,流量转发设备能够接收到目的域名为自身的域名的数据请求。
步骤102,根据预设域名名单,对目标域名进行校验。
这里,预设域名名单可以使用共享内存的方式存储,该方式的性能和扩展性都较好;其中,共享内存的方式包括但不限于etcd、apollo、memcache、redis等方式。
可选地,预设域名名单可以包括预设域名白名单,预设域名白名单中可以包括后端服务***中的每台服务器的域名。这样,可以对预设域名白名单进行遍历查找,以确定预设域名白名单中是否存在目标域名,如果存在,则可以判定对目标域名的校验通过,否则,可以判定对目标域名的校验不通过。
需要指出的是,理论上而言,预设域名名单也可以包括预设域名黑名单,这种情况下,也可以根据预设域名黑名单中是否存在目标域名,确定对目标域名的校验是否通过。
步骤103,在对目标域名的校验通过的情况下,将数据请求的目的域名更新为目标域名。
这里,在对目标域名的校验通过的情况下,可以将数据请求的目的域名存储区域存储的流量转发设备的域名替换为目标域名,以实现数据请求的目的域名的更新。
在一个例子中,流量转发设备的域名为gateway.com,目标域名为a.com,则原本的数据请求可以表示为gateway.com/uri,将数据请求的目的域名更新为目标域名后,目的域名经更新后的数据请求可以表示为a.com/uri;其中,uri的英文全称是Uniform ResourceIdentifier,uri的意思是统一资源标识符。
步骤104,转发目的域名经更新后的数据请求。
在将数据请求的目的域名更新为目标域名之后,流量转发设备可以转发目的域名经更新后的数据请求,由于目的域名经更新后的数据请求的目的域名为目标域名,目的域名经更新后的数据请求最终会被发送至数据请求的真实目的端。
需要说明的是,如果流量转发设备后续接收到了来自数据请求的真实目的端的响应,流量转发设备可以将接收到的响应原样转发给数据请求的请求方(例如上文中的终端设备)。
本公开的实施例中,请求方可以发出目的域名为流量转发设备的域名的数据请求,数据请求的指定区域还可以存储有目标域名,目标域名可以为数据请求的真实目的端的域名。这样,在流量转发设备接收到数据请求之后,在根据预设域名名单,对目标域名进行校验,且校验通过的情况下,流量转发设备可以将数据请求的目的域名更新为目标域名,并转发目的域名经更新后的数据请求,这样,流量转发设备转发出去的数据请求最终就会被发送至数据请求的真实目的端处。可见,本公开的实施例中,通过令请求方发出的数据请求的域名为流量转发设备的域名,且令数据请求的指定区域存储目标域名,可以保证数据请求被流量转发设备接收到且被转发至正确的服务器处,与相关技术相比,本公开的实施例无需为后端服务***中的各个服务器分别申请专用路径,实施起来非常便捷,且能够避免发生路径冲突,另外,数据请求中无需携带path,这样能够避免由于path的携带造成网关路由寻址所需的时间增加,从而有利于保证流量转发性能。
在一个可选示例中,数据请求中还于指定区域存储有请求签名数据和请求生成时间戳;
在对目标域名的校验通过的情况下,将数据请求的目的域名更新为目标域名,包括:
在对目标域名的校验通过的情况下,获取目标域名对应的私钥;
根据目标域名对应的私钥、数据请求中的请求参数以及请求生成时间戳,进行签名处理,以得到签名处理结果;
根据签名处理结果,对请求签名数据进行校验;
在对请求签名数据的校验通过的情况下,将数据请求的目的域名更新为目标域名。
本公开的实施例中,可以预先配置域名与私钥之间的对应关系。在对目标域名的校验通过的情况下,可以根据预先配置的对应关系,确定目标域名对应的私钥,接下来,可以根据目标域名对应的私钥、数据请求中的请求参数以及请求生成时间戳,进行签名处理,以得到签名处理结果。
在一种具体实施方式中,根据目标域名对应的私钥、数据请求中的请求参数以及请求生成时间戳,进行签名处理,以得到签名处理结果,包括:
确定数据请求中的所有请求参数中的每个请求参数各自对应的编码;
根据每个请求参数和每个请求参数对应的编码,确定每个请求参数对应的签名基础数据;
利用预设符号,连接所有请求参数对应的所有签名基础数据,以得到连接结果;
将目标域名对应的私钥、连接结果和请求生成时间戳进行拼接,以得到拼接结果;
采用预设签名算法,对拼接结果进行运算处理,以得到签名处理结果。
这里,请求参数可以为应用程序编程接口(Application Program Interface,API);任一请求参数对应的编码可以为美国标准信息交换代码(American Standard Codefor Information Interchange,ASCII)编码;预设符号可以为与符号(即&);预设签名算法可以为消息摘要算法第五版(即MD5算法)。
为了便于理解,下面以一个具体的例子,对这种实施方式进行说明。
假设数据请求中包括两个API请求参数,分别是foo和bar,foo对应的ASCII编码为1,bar对应的编码为2,则可以确定foo对应的签名基础数据为foo=1,bar对应的签名基础数据为bar=2。接下来,可以将foo=1与bar=2进行排序,例如排序为bar=2,foo=1,之后可以利用,连接bar=2,foo=1,连接结果为bar=2&foo=1。
假设目标域名对应的私钥表示为secret_key,请求生成时间戳表示为Request_ts,则将目标域名对应的私钥、连接结果和请求生成时间戳进行拼接时,得到拼接结果可以表示为secret_key+bar=2&foo=1+Request_ts。再之后,可以采用MD5算法对拼接结果进行运算处理,以得到签名处理结果,假设签名处理结果表示为access_signature,则access_signature=MD5(secret_key+bar=2&foo=1+Request_ts)。
容易看出,采用这种实施方式,基于编码确定操作、连接操作、拼接操作等操作,能够非常便捷可靠地得到签名处理结果。
当然,根据目标域名对应的私钥、数据请求中的请求参数以及请求生成时间戳,进行签名处理,以得到签名处理结果的方式并不局限于此,例如,可以直接利用不同于&的其他符号,连接所有API请求参数,以得到连接结果,然后将目标域名对应的私钥、连接结果和请求生成时间戳进行拼接,以得到拼接结果,之后采用不同于MD5的签名算法,对拼接结果进行运算处理,以得到签名处理结果,这也是可行的。
无论采用何种方式得到签名处理结果,在得到签名处理结果之后,均可以根据签名处理结果,对指定区域存储的请求签名数据进行校验。需要指出的是,指定区域存储的请求签名数据可以是在终端设备发送数据请求之前生成的,请求签名数据的生成方式与得到签名处理结果的方式可以是一致的,具体参照上文中对得到签名处理结果的方式的说明即可,在此不再赘述。这样,可以在签名处理结果与指定区域存储的请求签名数据相同的情况下,确定对请求签名数据的校验通过;否则,确定对请求签名数据的校验不通过。
在对请求签名数据的校验通过的情况下,可以认为请求签名数据是合法的,这时,可以将数据请求的目的域名更新为目标域名,并转发目的域名经更新后的数据请求。
在对请求签名数据的校验不通过的情况下,可以认为请求签名数据是不合法的,这时,可以丢弃数据请求。
本公开的实施例中,可以在指定区域存储有请求签名数据和请求生成时间戳的情况下,基于目标域名对应的私钥、数据请求中的请求参数以及请求生成时间戳,进行请求签名数据的校验,并仅在校验通过的情况下,进行目的域名更新,这样能够避免对所包括的请求签名数据不合法的数据请求的响应带来的安全风险,另外还能够节约***资源。
在一个可选示例中,预设域名名单包括预设域名白名单;
获取目标域名对应的私钥,包括:
根据预设记录中所记录的域名与私钥之间的对应关系,确定目标域名对应的私钥;
该方法还包括:
向流量转发设备对应的后端服务***中添加新的服务器;
将新的服务器的域名添加至预设域名白名单中;
为新的服务器分配私钥,并向预设记录中添加新的服务器的域名与为新的服务器分配的私钥之间的对应关系。
本公开的实施例中,可以预先配置一预设记录,预设记录中可以记录有后端服务***中的每个服务器的域名与相应私钥之间的对应关系。这样,在对目标域名的校验通过的情况下,可以根据预设记录中已记录的对应关系,确定目标域名对应的私钥。
需要指出的是,在一些情况下,例如新增业务场景的情况下,为了保证用户能够享受新增业务场景对应的数据服务,可以向后端服务***中添加新的服务器,新的服务器用于提供新增业务场景对应的数据服务。这时,还可以调用图3中的后台管理模块,将新的服务器的域名添加至预设域名白名单中,另外,还可以调用图2、图3中的接入方私钥管理模块,为新的服务器分配私钥,并向预设记录中添加新的服务器的域名与为新的服务器分配的私钥之间的对应关系,这样,通过预设域名白名单和预设记录的更新,用户后续能够正常享受到新的服务器提供的数据服务。
在一个可选示例中,数据请求中还于指定区域存储有请求生成时间戳;
在对目标域名的校验通过的情况下,将数据请求的目的域名更新为目标域名,包括:
获取当前时间戳;
在当前时间戳与请求生成时间戳之间的时间间隔小于预设时间间隔,且对目标域名的校验通过的情况下,将数据请求的目的域名更新为目标域名。
这里,预设时间间隔可以为30秒、1分钟、2分钟或者其他取值,在此不再一一列举。
本公开的实施例,在当前时间戳与请求生成时间戳之间的时间间隔小于预设时间间隔,且对目标域名的校验通过的情况下,可以认为数据请求的真实目的端是后端服务***中的某一服务器,且数据请求并未过期,因此可以进行目的域名更新,而如果当前时间戳与请求生成时间戳之间的时间间隔大于或等于预设时间间隔,则无论对目标域名的校验是否通过,均可以禁止进行目的域名的更新,也即,本公开的实施例中,流量转发***可以仅对未过期的数据请求进行转发,这样有利于保证数据请求处理的时效性。
结合图2、图3,本公开的实施例中,在接收到可以表示为gateway.com/uri的HTTP请求之后,可以基于预设域名白名单,对HTTP请求中的请求header区域中的目标域名(假设为a.com)进行校验;若对a.com的校验通过,则可以进行签名验证,即对HTTP请求中的请求header区域中的请求签名数据进行校验;若对请求签名数据的校验通过,则可以进行流量转发组装,即将HTTP请求的目的域名由gateway.com更新为a.com后发出,发出的HTTP请求可以表示为a.com/uri。如果a.com正好为第一服务器的域名,则第一服务器最终会接收到可表示为a.com/uri的HTTP请求。
综上,本公开的实施例能够可靠地实现流量转发,实施起来非常便捷,实现复杂度低,且能够避免发生路径冲突,还能够保证流量转发性能。
示例性装置
图4是本公开一示例性实施例提供的数据请求处理装置的结构示意图,图4所示的装置应用于流量转发设备,图4所示的装置包括接收模块401、校验模块402、更新模块403、转发模块404。
接收模块401,用于接收目的域名为流量转发设备的域名的数据请求;其中,数据请求中还于指定区域存储有目标域名,目标域名不同于流量转发设备的域名;
校验模块402,用于根据预设域名名单,对目标域名进行校验;
更新模块403,用于在对目标域名的校验通过的情况下,将数据请求的目的域名更新为目标域名;
转发模块404,用于转发目的域名经更新后的数据请求。
在一个可选示例中,数据请求中还于指定区域存储有请求签名数据和请求生成时间戳;
如图5所示,更新模块403,包括:
第一获取子模块4031,用于在对目标域名的校验通过的情况下,获取目标域名对应的私钥;
签名处理子模块4032,用于根据目标域名对应的私钥、数据请求中的请求参数以及请求生成时间戳,进行签名处理,以得到签名处理结果;
校验子模块4033,用于根据签名处理结果,对请求签名数据进行校验;
第一更新子模块4034,用于在对请求签名数据的校验通过的情况下,将数据请求的目的域名更新为目标域名。
在一个可选示例中,预设域名名单包括预设域名白名单;
第一获取子模块4031,具体用于:
根据预设记录中所记录的域名与私钥之间的对应关系,确定目标域名对应的私钥;
该装置还包括:
第一添加模块,用于向流量转发设备对应的后端服务***中添加新的服务器;
第二添加模块,用于将新的服务器的域名添加至预设域名白名单中;
处理模块,用于为新的服务器分配私钥,并向预设记录中添加新的服务器的域名与为新的服务器分配的私钥之间的对应关系。
在一个可选示例中,签名处理子模块4032,包括:
第一确定单元,用于确定数据请求中的所有请求参数中的每个请求参数各自对应的编码;
第二确定单元,用于根据每个请求参数和每个请求参数对应的编码,确定每个请求参数对应的签名基础数据;
连接单元,用于利用预设符号,连接所有请求参数对应的所有签名基础数据,以得到连接结果;
拼接单元,用于将目标域名对应的私钥、连接结果和请求生成时间戳进行拼接,以得到拼接结果;
运算处理单元,用于采用预设签名算法,对拼接结果进行运算处理,以得到签名处理结果。
在一个可选示例中,数据请求中还于指定区域存储有请求生成时间戳;
更新模块403,包括:
第二获取子模块,用于获取当前时间戳;
第二更新子模块,用于在当前时间戳与请求生成时间戳之间的时间间隔小于预设时间间隔,且对目标域名的校验通过的情况下,将数据请求的目的域名更新为目标域名。
示例性电子设备
下面,参考图6来描述根据本公开实施例的电子设备。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
图6图示了根据本公开实施例的电子设备600的框图。
如图6所示,电子设备600包括一个或多个处理器601和存储器602。
处理器601可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备600中的其他组件以执行期望的功能。
存储器602可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器601可以运行所述程序指令,以实现上文所述的本公开的各个实施例的数据请求处理方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备600还可以包括:输入装置603和输出装置604,这些组件通过总线***和/或其他形式的连接机构(未示出)互连。
例如,在电子设备600是第一设备或第二设备时,该输入装置603可以是麦克风或麦克风阵列。在电子设备600是单机设备时,该输入装置603可以是通信网络连接器,用于从第一设备和第二设备接收所采集的输入信号。
此外,该输入装置603还可以包括例如键盘、鼠标等等。
该输出装置604可以向外部输出各种信息。该输出装置604可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出装置等等。
当然,为了简化,图6中仅示出了该电子设备600中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备600还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的数据请求处理方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的数据请求处理方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于***实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、***的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、***。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (12)

1.一种数据请求处理方法,其特征在于,应用于流量转发设备,所述方法包括:
接收目的域名为所述流量转发设备的域名的数据请求;其中,所述数据请求中还于指定区域存储有目标域名,所述目标域名不同于所述流量转发设备的域名;
根据预设域名名单,对所述目标域名进行校验;
在对所述目标域名的校验通过的情况下,将所述数据请求的目的域名更新为所述目标域名;
转发目的域名经更新后的所述数据请求。
2.根据权利要求1所述的方法,其特征在于,所述数据请求中还于所述指定区域存储有请求签名数据和请求生成时间戳;
所述在对所述目标域名的校验通过的情况下,将所述数据请求的目的域名更新为所述目标域名,包括:
在对所述目标域名的校验通过的情况下,获取所述目标域名对应的私钥;
根据所述目标域名对应的私钥、所述数据请求中的请求参数以及所述请求生成时间戳,进行签名处理,以得到签名处理结果;
根据所述签名处理结果,对所述请求签名数据进行校验;
在对所述请求签名数据的校验通过的情况下,将所述数据请求的目的域名更新为所述目标域名。
3.根据权利要求2所述的方法,其特征在于,所述预设域名名单包括预设域名白名单;
所述获取所述目标域名对应的私钥,包括:
根据预设记录中所记录的域名与私钥之间的对应关系,确定所述目标域名对应的私钥;
所述方法还包括:
向所述流量转发设备对应的后端服务***中添加新的服务器;
将所述新的服务器的域名添加至所述预设域名白名单中;
为所述新的服务器分配私钥,并向所述预设记录中添加所述新的服务器的域名与为所述新的服务器分配的私钥之间的对应关系。
4.根据权利要求2所述的方法,其特征在于,所述根据所述目标域名对应的私钥、所述数据请求中的请求参数以及所述请求生成时间戳,进行签名处理,以得到签名处理结果,包括:
确定所述数据请求中的所有请求参数中的每个请求参数各自对应的编码;
根据每个请求参数和每个请求参数对应的编码,确定每个请求参数对应的签名基础数据;
利用预设符号,连接所有请求参数对应的所有签名基础数据,以得到连接结果;
将所述目标域名对应的私钥、所述连接结果和所述请求生成时间戳进行拼接,以得到拼接结果;
采用预设签名算法,对所述拼接结果进行运算处理,以得到签名处理结果。
5.根据权利要求1所述的方法,其特征在于,所述数据请求中还于所述指定区域存储有请求生成时间戳;
所述在对所述目标域名的校验通过的情况下,将所述数据请求的目的域名更新为所述目标域名,包括:
获取当前时间戳;
在所述当前时间戳与所述请求生成时间戳之间的时间间隔小于预设时间间隔,且对所述目标域名的校验通过的情况下,将所述数据请求的目的域名更新为所述目标域名。
6.一种数据请求处理装置,其特征在于,应用于流量转发设备,所述装置包括:
接收模块,用于接收目的域名为所述流量转发设备的域名的数据请求;其中,所述数据请求中还于指定区域存储有目标域名,所述目标域名不同于所述流量转发设备的域名;
校验模块,用于根据预设域名名单,对所述目标域名进行校验;
更新模块,用于在对所述目标域名的校验通过的情况下,将所述数据请求的目的域名更新为所述目标域名;
转发模块,用于转发目的域名经更新后的所述数据请求。
7.根据权利要求6所述的装置,其特征在于,所述数据请求中还于所述指定区域存储有请求签名数据和请求生成时间戳;
所述更新模块,包括:
第一获取子模块,用于在对所述目标域名的校验通过的情况下,获取所述目标域名对应的私钥;
签名处理子模块,用于根据所述目标域名对应的私钥、所述数据请求中的请求参数以及所述请求生成时间戳,进行签名处理,以得到签名处理结果;
校验子模块,用于根据所述签名处理结果,对所述请求签名数据进行校验;
第一更新子模块,用于在对所述请求签名数据的校验通过的情况下,将所述数据请求的目的域名更新为所述目标域名。
8.根据权利要求7所述的装置,其特征在于,所述预设域名名单包括预设域名白名单;
所述第一获取子模块,具体用于:
根据预设记录中所记录的域名与私钥之间的对应关系,确定所述目标域名对应的私钥;
所述装置还包括:
第一添加模块,用于向所述流量转发设备对应的后端服务***中添加新的服务器;
第二添加模块,用于将所述新的服务器的域名添加至所述预设域名白名单中;
处理模块,用于为所述新的服务器分配私钥,并向所述预设记录中添加所述新的服务器的域名与为所述新的服务器分配的私钥之间的对应关系。
9.根据权利要求7所述的装置,其特征在于,所述签名处理子模块,包括:
第一确定单元,用于确定所述数据请求中的所有请求参数中的每个请求参数各自对应的编码;
第二确定单元,用于根据每个请求参数和每个请求参数对应的编码,确定每个请求参数对应的签名基础数据;
连接单元,用于利用预设符号,连接所有请求参数对应的所有签名基础数据,以得到连接结果;
拼接单元,用于将所述目标域名对应的私钥、所述连接结果和所述请求生成时间戳进行拼接,以得到拼接结果;
运算处理单元,用于采用预设签名算法,对所述拼接结果进行运算处理,以得到签名处理结果。
10.根据权利要求6所述的装置,其特征在于,所述数据请求中还于所述指定区域存储有请求生成时间戳;
所述更新模块,包括:
第二获取子模块,用于获取当前时间戳;
第二更新子模块,用于在所述当前时间戳与所述请求生成时间戳之间的时间间隔小于预设时间间隔,且对所述目标域名的校验通过的情况下,将所述数据请求的目的域名更新为所述目标域名。
11.一种计算机可读存储介质,所述存储介质存储有计算机程序,其特征在于,所述计算机程序用于执行上述权利要求1至5中任一项所述的数据请求处理方法。
12.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1至5中任一项所述的数据请求处理方法。
CN202011297442.9A 2020-11-18 2020-11-18 数据请求处理方法和装置、存储介质和电子设备 Active CN112422429B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011297442.9A CN112422429B (zh) 2020-11-18 2020-11-18 数据请求处理方法和装置、存储介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011297442.9A CN112422429B (zh) 2020-11-18 2020-11-18 数据请求处理方法和装置、存储介质和电子设备

Publications (2)

Publication Number Publication Date
CN112422429A CN112422429A (zh) 2021-02-26
CN112422429B true CN112422429B (zh) 2022-04-22

Family

ID=74774752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011297442.9A Active CN112422429B (zh) 2020-11-18 2020-11-18 数据请求处理方法和装置、存储介质和电子设备

Country Status (1)

Country Link
CN (1) CN112422429B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006068108A1 (ja) * 2004-12-21 2006-06-29 Matsushita Electric Industrial Co., Ltd. ゲートウェイ、ネットワークシステム及びWebサーバへのアクセス制御方法
US7089325B1 (en) * 2000-07-05 2006-08-08 Register.Com, Inc. Method and apparatus for URL forwarding
CN107948329A (zh) * 2018-01-03 2018-04-20 湖南麓山云数据科技服务有限公司 一种跨域处理方法及***
CN108616490A (zh) * 2016-12-13 2018-10-02 腾讯科技(深圳)有限公司 一种网络访问控制方法、装置及***

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101997903B (zh) * 2009-08-27 2013-09-25 国际商业机器公司 用于处理超文本传输协议请求的方法和***
US8694642B2 (en) * 2010-10-21 2014-04-08 Opendns, Inc. Selective proxying in domain name systems
CN103312749B (zh) * 2012-03-13 2016-12-14 华为技术有限公司 一种应用层流量优化服务器的发现方法、设备及***
US9602468B2 (en) * 2014-11-19 2017-03-21 Facebook, Inc. Techniques to authenticate a client to a proxy through a domain name server intermediary
US9807050B2 (en) * 2015-04-15 2017-10-31 Cisco Technology, Inc. Protocol addressing for client and destination identification across computer networks
US20180191856A1 (en) * 2016-12-29 2018-07-05 Synology Inc. Cross-domain communication methods and proxy servers using the same
CN110716850B (zh) * 2018-07-11 2022-05-06 腾讯科技(深圳)有限公司 页面测试方法、装置、***及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089325B1 (en) * 2000-07-05 2006-08-08 Register.Com, Inc. Method and apparatus for URL forwarding
WO2006068108A1 (ja) * 2004-12-21 2006-06-29 Matsushita Electric Industrial Co., Ltd. ゲートウェイ、ネットワークシステム及びWebサーバへのアクセス制御方法
CN108616490A (zh) * 2016-12-13 2018-10-02 腾讯科技(深圳)有限公司 一种网络访问控制方法、装置及***
CN107948329A (zh) * 2018-01-03 2018-04-20 湖南麓山云数据科技服务有限公司 一种跨域处理方法及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
跨域及其设置方法;赵学作,赵少农;《网络安全和信息化》;20190605;全文 *

Also Published As

Publication number Publication date
CN112422429A (zh) 2021-02-26

Similar Documents

Publication Publication Date Title
CN109150978B (zh) 调试微服务的方法和装置
US10891383B2 (en) Validating computer resource usage
US9430302B2 (en) Method, device and system for using and invoking Oauth API
WO2017097123A1 (zh) 访问请求转换的方法和装置
CN111062024B (zh) 一种应用登录方法和装置
US11120107B2 (en) Managing content delivery to client devices
CN110958237A (zh) 一种权限校验的方法和装置
US7130877B2 (en) Request processing switch
CN109379336A (zh) 一种统一认证方法、分布式***和计算机可读存储介质
CN113612686A (zh) 流量调度方法、装置及电子设备
CN111404921B (zh) 网页应用访问方法、装置、设备、***及存储介质
CN112764726A (zh) 一种数据合成的方法和装置
US9762678B2 (en) Method, apparatus and computer program for modifying an endpoint reference representing a web service endpoint
CN113778499B (zh) 发布服务的方法、装置、设备和计算机可读介质
CN112422429B (zh) 数据请求处理方法和装置、存储介质和电子设备
CN116032627A (zh) 一种基于微服务架构的统一认证授权方法及装置
CN114338788B (zh) 消息推送方法、电子设备及存储介质
JP3528065B2 (ja) コンピュータネットワーク上の対話継承型アクセス制御方法
CN111027051B (zh) 控制页面权限调用的方法、装置及可读存储介质
CN113472831B (zh) 一种服务访问方法、装置、网关设备及存储介质
CN112383434A (zh) 网络请求的接口模拟方法、装置、电子设备和存储介质
CN112968866B (zh) 用户账号信息与用户身份信息的绑定方法、装置及***
CN111506846A (zh) Web页面生成方法、装置、电子设备及存储介质
CN116166736B (zh) 基于应用程序接口的区块链数据上链方法、装置和介质
CN115987683B (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