判断调用接口请求是否正常的方法、装置和计算机设备与流程

文档序号:18471491发布日期:2019-08-20 20:21阅读:2458来源:国知局
判断调用接口请求是否正常的方法、装置和计算机设备与流程

本申请涉及计算机技术领域,特别涉及一种判断调用接口请求是否正常的方法、装置和计算机设备。



背景技术:

zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是google的chubby一个开源的实现,是hadoop和hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

zookeeper实例变更时调用restful接口通知esg-admin端处理当前节点,但是http接口调用方容易被伪造、串改、易攻击,因此,亟需解决zookeeper端调用的交互接口被第三方恶意攻击的问题。



技术实现要素:

本申请的主要目的为提供一种判断调用接口请求是否正常的方法、装置和计算机设备,旨在解决调用的接口被冒用、攻击的问题。

为实现上述目的,本申请提供了一种判断调用接口请求是否正常的方法,包括以下步骤:

平台终端接收到zookeeper端调用http接口的请求;

依据所述请求到所述zookeeper端获取所述http接口的请求头签名串参数和请求正文,其中,所述请求头签名串参数为签名串参数设于所述http接口的请求头中形成,所述签名串参数为所述zookeeper端通过第一私钥加密所述http接口的请求正文得到,所述第一私钥为所述平台终端生成并发送给所述zookeeper端的私钥;

通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证;

若验证通过,则判定所述zookeeper端调用所述http接口的请求是正常的。

进一步地,所述平台终端接收到zookeeper端调用http接口的请求的步骤之前,包括:

通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端。

进一步地,所述将所述第一私钥发送给所述zookeeper端的步骤,包括:

将所述第一私钥发送于所述zookeeper端的指定节点中。

进一步地,所述指定节点为rsa/private节点。

进一步地,所述通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证的步骤之后,还包括:

若验证不通过,则判定所述请求异常,并对所述请求以及所述请求对应的ip地址进行标记。

进一步地,所述通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端的步骤之后,包括:

根据预设的时间间隔,生成最新的第一公钥以及最新的第一私钥;

将所述最新的第一私钥发送至所述zookeeper端的指定节点处,其中,所述zookeeper端通过所述最新的第一私钥加密所述http接口的请求正文得到新的签名串参数,并将所述新的签名串参数设于所述http接口的请求头中形成新的请求头签名串参数。

进一步地,所述通过与所述第一私钥对应的所述第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证的步骤,包括:

判断所述第一公钥是否可以解开所述请求头签名串参数;

若可以解开,则判定验证通过。

本申请还提供了一种判断调用接口请求是否正常的装置,包括:

接收模块,用于平台终端接收到zookeeper端调用http接口的请求;

获取模块,用于依据所述请求到所述zookeeper端获取所述http接口的请求头签名串参数和请求正文,其中,所述请求头签名串参数为签名串参数设于所述http接口的请求头中形成,所述签名串参数为所述zookeeper端通过第一私钥加密所述http接口的请求正文得到,所述第一私钥为所述平台终端生成并发送给所述zookeeper端的私钥;

检验模块,用于通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证;

判定模块,用于若验证通过,则判定所述zookeeper调用所述http接口的请求是正常的。

本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。

本申请还提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。

本申请中提供的判断调用接口请求是否正常的方法、装置和计算机设备,具有以下有益效果:

将生成的第一私钥发送至zookeeper端的指定节点中,以便接收到zookeeper端调用的http接口的请求时,获取到加密的请求头签名串参数,并通过第一共钥进行解密验证,以便判断zookeeper端调用http接口的请求是否正常,以此判定调用的接口是否存在被冒用、攻击的问题。

附图说明

图1是本申请一实施例中判断调用接口请求是否正常的方法步骤示意图;

图2是本申请一实施例中判断调用接口请求是否正常的装置结构框图;

图3是本申请一实施例的计算机设备的结构示意框图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

参照图1,为本申请一实施例中提供了一种判断调用接口请求是否正常的方法,包括以下步骤:

步骤s1,平台终端接收到所述zookeeper端调用http接口的请求;

步骤s2,依据所述请求到所述zookeeper端获取所述http接口的请求头签名串参数和请求正文,其中,所述请求头签名串参数为签名串参数设于所述http接口的请求头中形成,所述签名串参数为所述zookeeper端通过第一私钥加密所述http接口的请求正文得到,所述第一私钥为所述平台终端生成并发送给所述zookeeper端的私钥;

步骤s3,通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证;

步骤s4,若验证通过,则判定所述zookeeper端调用所述http接口的请求是正常的。

以上步骤中,平台终端为服务治理管理平台,接收到用于随机生成rsa公私钥的代码并存储,当生成用于加密的第一公钥和第一私钥,其中,平台终端将第一私钥的字节码通过base64加密得到对应的字符串,将该第一私钥的字符串发送给zookeeper端,将第一私钥对应的字符串设于zookeeper端的指定节点处,该指定节点的路径可以为zookeeper/rsa/private,也即将第一私钥通过zookeeper端的acldigest模式写入zookeeper端的rsa中的private节点中,zookeeper端对写入节点中的第一私钥进行digest的权限控制,digest是zookeeper端节点权限控制的一种模式,通过digest模式可以防止节点数据泄露,通过编写的zookeeper端的插件感知存放第一私钥节点变化时,读取该节点的数据以得到第一私钥。其中,digest是zookeeper自带的功能和特性,通过digest模式可以防止节点数据的泄露,以生成防止第一私钥泄露的模式。

接收到zookeeper端调用http接口的请求时,依据该请求到zookeeper端获取http接口的请求头签名串参数和请求正文,其中,通过rsa非对称加密进行数字签名,接收到zookeeper端调用http接口的请求之前,zookeeper端通过第一私钥加密http接口的请求正文得到签名串参数,签名串参数设于http接口的请求头中形成请求头签名串参数,即通过第一私钥加签http接口的请求头签名串参数和请求正文;在本实施例中,加签就是数字签名,使用得到的第一私钥加密http接口的请求正文,该请求正文即是zookeeper端通知esg-admin端的数据。zookeeper端在服务实例节点变更时使用httppost方式,将实例节点数据放入body(请求正文),使用第一私钥对body(请求正文)进行数字签名得到签名串。http接口的请求正文,zookeeper端在服务实例节点变更时使用httppost方式,将实例节点数据放入请求正文,使用第一私钥对请求正文进行数字签名得到签名串参数或者符号,采用post请求方式对请求body大小没有限制,加签得到签名串符号/参数,将该参数/符号设于http接口的请求头中,形成请求头签名串参数;当接收到zookeeper端的请求所得到的请求头签名串参数和请求正文,平台终端再通过第一公钥对获取到的请求正文和签名串参数进行验证,判断第一公钥是否可以解开zookeeper端的请求所得到的参数,若可以解开,则验证通过,本次zookeeper端发起的请求是正常的,是未经过串改的,允许进行下一步的处理。其中,平台终端通过非对称加密生成的互配第一公钥和第一私钥可以互相解密,可以防止调用的接口不被第三方恶意攻击,以保证所有的请求均通过zookeeper端发起。

若发现第一公钥无法解开zookeeper端调用http接口的请求所得到的参数,则系统会自动判断,验证不通过,且可能存在第三方恶意攻击,则会对本次调用http接口的请求、ip进行标记,以便进行下一次的验证。

在一实施例中,所述平台终端接收到zookeeper端调用http接口的请求的步骤s1之前,还包括:

步骤s10,通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端。

以上步骤中,预先接收到开发人员编写的可随机生成互配的公钥和私钥的代码,当接收到用户终端输入生成所述第一公钥和所述第一私钥的指令,通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将第一私钥发送给zookeeper端。可以经常更换随机的公钥和私钥,可以有效的预防系统提供的接口被冒用、串改。

在一实施例中,所述将所述第一私钥发送给所述zookeeper端的步骤s10,包括:

步骤s101,将所述第一私钥发送于所述zookeeper端的指定节点中。

以上步骤中,将第一私钥写入到zookeeper端的指定节点中,如在一实施例中,将第一私钥通过zookeeper端的acldigest模式写入zookeeper端的rsa中的private节点中,zookeeper端对写入节点中的第一私钥进行digest的权限控制,其中digest是zookeeper端节点权限控制的一种模式,通过digest模式可以防止节点数据泄露,通过编写的zookeeper插件感知到存放第一私钥节点变化时,读取该节点的数据以得到第一私钥。利用位于rsa中的第一私钥对post请求正文进行加签得到签名串参数sign,将该签名串参数放入到http的请求头中形成请求头签名串参数,其中,key为参数sign,value为参数sign值。以便接收到zookeeper端调用restful风格的http接口的请求,可以得到用于验证的请求头签名串参数和请求正文。

restful(representationalstatetransfer),主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

在一实施例中,所述指定节点为rsa/private节点。

zookeeper端中包括有多种形式的节点,在本实施例中,第一私钥通过写入到路径为zookeeper/rsa/private中,private节点用于在java中控制访问权限。

在本实施例中,zookeeper端的权限控制模式为acldigest,其中acl(accesscontrollist)digest模式是最常用的权限控制模式,zookeeper端会对形成的权限标识先后进行两次编码处理,依次是sha-1加密算法和base64编码。

以上步骤中,获取到的第一私钥是一组字节码,系统将获取到的第一私钥的字节码通过base64加密得到对应的字符串,将所述第一私钥对应的该字符串写入路径为zookeeper/rsa/private的节点处,zookeeper端通过感知到节点处的变化,读取到对应的字符串,zookeeper端将该字符串转化为字节码的第一私钥。

zookeeper端实时监听路径为/rsa/private的节点处的第一私钥,通过实时感知接收到的第一私钥是否存在变更,若系统将新生成的变更第一私钥发送至zookeeper端的指定节点处,zookeeper端可自动监听第一私钥是否变更过,若获取到第一私钥已变更过,则对所述已变更的第一私钥进行处理,以便系统接收到zookeeper端的请求后,获取到已变更的第一私钥处理形成的请求头签名串参数和请求正文。

base64编码是从二进制到字符的过程,可用于在http环境下传递较长的标识信息。为最常见的用于传输8bit字节码的编码方式之一。

在一实施例中,所述通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证的步骤s3之后,还包括:

步骤s301,若验证不通过,则判定所述请求异常,并对所述请求以及所述请求对应的ip地址进行标记。

以上步骤中,若判断收到的所述zookeeper端调用所述http接口的请求是异常的,则系统会预测到系统与zookeeper端交互的接口被第三方恶意攻击,此时http请求并不一定由zookeeper发起,则将发起的ip地址以及请求进行标记,以便下次若检测到依然采用同一个ip地址发起的请求,且是想解签的情况下,进行报警,防止第三方恶意攻击、串改成功。

在一实施例中,所述通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端的步骤s10,包括:

步骤s101,根据预设的时间间隔,生成最新的第一公钥以及最新的第一私钥;

步骤s102,将所述最新的第一私钥发送至所述zookeeper端的指定节点处,其中,所述zookeeper端通过所述最新的第一私钥加密所述http接口的请求正文得到新的签名串参数,并将所述新的签名串参数设于所述http接口的请求头中形成新的请求头签名串参数。

以上步骤中,为了防止长期使用第一私钥进行加密zookeeper端,容易被第三方恶意攻击且实现串改,可通过一段时间间隔代码,在指定的时间段,如一小时或者两小时等,系统重新通过非对称加密生成新的互配的第一公钥和第一私钥,其中,每次生成rsa公私钥的字串都是不同且随机的,根据预设的时间,触动系统重新生成新的互配的第一公钥和第一私钥,系统再将第一私钥发送至指定节点,如路径为zookeeper/rsa/private处,以便zookeeper端可以实时监控节点处的第一私钥是否变更过,进而进行下一步的处理。通过非对称加密的方式进行加密,以便确保系统提供的接口不被冒用、串改。

在一实施例中,所述通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证s3的步骤,包括:

步骤s31,判断所述第一公钥是否可以解开所述请求头签名串参数;

步骤s32,若可以解开,则判定验证通过。

以上步骤中,当接收到zookeeper端的请求所得到的请求头签名串参数和请求正文,通过第一公钥对请求正文和签名串参数进行验证,判断第一公钥是否可以解开zookeeper端的调用请求所得到的参数,若可以解开,则可以得到解开的所述请求头签名串参数对应的请求正文以及签名串参数,进而在签名串参数中剔除出第一私钥,并将剔除的第一私钥与平台系统中生成的第一私钥进行对比,若一致,则验证通过,本次zookeeper端发起的请求是正常的,是未经过串改的,允许进行下一步的处理。通过非对称加密生成的第一公钥和第一私钥互相解密,可以防止系统与zookeeper之间交互的接口不被第三方恶意攻击,以保证所有的请求均通过zookeeper发起。

综上所述,为本申请实施例中提供的判断调用接口请求是否正常的方法,将生成的第一私钥发送至zookeeper端的指定节点中,以便接收到zookeeper端调用的http接口的请求时,获取到加密的请求头签名串参数,并通过第一共钥进行解密验证,以便判断zookeeper端调用http接口的请求是否正常,以此判定调用的接口是否存在被篡改或者冒用、攻击。

参照图2,本申请一实施例中还提供了一种判断调用接口请求是否正常的装置,包括:

接收模块10,用于平台终端接收到zookeeper端调用http接口的请求;

获取模块20,用于依据所述请求到所述zookeeper端获取所述http接口的请求头签名串参数和请求正文,其中,所述请求头签名串参数为签名串参数设于所述http接口的请求头中形成,所述签名串参数为所述zookeeper端通过第一私钥加密所述http接口的请求正文得到,所述第一私钥为所述平台终端生成并发送给所述zookeeper端的私钥;

检验模块30,用于通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证;

判定模块40,用于若验证通过,则判定所述zookeeper端调用所述http接口的请求是正常的。

本实施例中,平台终端为服务治理管理平台,接收到用于随机生成rsa公私钥的代码并存储,当生成用于加密的第一公钥和第一私钥,其中,平台终端将第一私钥的字节码通过base64加密得到对应的字符串,将该第一私钥的字符串发送给zookeeper端,将第一私钥对应的字符串设于zookeeper端的指定节点处,该指定节点的路径可以为zookeeper/rsa/private,也即将第一私钥通过zookeeper端的acldigest模式写入zookeeper端的rsa中的private节点中,zookeeper端对写入节点中的第一私钥进行digest的权限控制,digest是zookeeper端节点权限控制的一种模式,通过digest模式可以防止节点数据泄露,通过编写的zookeeper端的插件感知存放第一私钥节点变化时,读取该节点的数据以得到第一私钥。其中,digest是zookeeper自带的功能和特性,通过digest模式可以防止节点数据的泄露,以生成防止第一私钥泄露的模式。

接收模块10接收到zookeeper端调用http接口的请求时,获取模块20依据该请求到zookeeper端获取http接口的请求头签名串参数和请求正文,其中,通过rsa非对称加密进行数字签名,接收到zookeeper端调用http接口的请求之前,zookeeper端通过第一私钥加密http接口的请求正文得到签名串参数,签名串参数设于http接口的请求头中形成请求头签名串参数,即通过第一私钥加签http接口的请求头签名串参数和请求正文;在本实施例中,加签就是数字签名,使用得到的第一私钥加密http接口的请求正文,该请求正文即是zookeeper端通知esg-admin端的数据。zookeeper端在服务实例节点变更时使用httppost方式,将实例节点数据放入body(请求正文),使用第一私钥对body(请求正文)进行数字签名得到签名串。http接口的请求正文,zookeeper端在服务实例节点变更时使用httppost方式,将实例节点数据放入请求正文,使用第一私钥对请求正文进行数字签名得到签名串参数或者符号,采用post请求方式对请求body大小没有限制,加签得到签名串符号/参数,将该参数/符号设于http接口的请求头中,形成请求头签名串参数;当接收到zookeeper端的请求所得到的请求头签名串参数和请求正文,验证模块30通过第一公钥对获取到的请求正文和签名串参数进行验证,判定模块40判断第一公钥是否可以解开zookeeper端的请求所得到的参数,若可以解开,则验证通过,本次zookeeper端发起的请求是正常的,是未经过串改的,允许进行下一步的处理。其中,平台终端通过非对称加密生成的互配第一公钥和第一私钥可以互相解密,可以防止调用的接口不被第三方恶意攻击,以保证所有的请求均通过zookeeper端发起。

若发现第一公钥无法解开zookeeper端调用http接口的请求所得到的参数,则系统会自动判断,验证不通过,且可能存在第三方恶意攻击,则会对本次调用http接口的请求、ip进行标记,以便进行下一次的验证。

在一实施例中,判断调用接口请求是否正常的装置还包括:

生成模块,用于通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端。

在本实施例中,预先接收到开发人员编写的可随机生成互配的公钥和私钥的代码,当用户终端输入生成所述第一公钥和所述第一私钥的指令,生成模块通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将第一私钥发送给zookeeper端。通过经常更换随机的公钥和私钥,可以有效的预防系统提供的接口被冒用、串改。

在一实施例中,生成模块包括:

第一发送单元,用于将所述第一私钥发送于所述zookeeper端的指定节点中。

在本实施例中,将第一私钥写入到zookeeper端的指定节点中,如在一实施例中,将第一私钥通过zookeeper端的acldigest模式写入zookeeper端的rsa中的private节点中,zookeeper端对写入节点中的第一私钥进行digest的权限控制,其中digest是zookeeper端节点权限控制的一种模式,通过digest模式可以防止节点数据泄露,通过编写的zookeeper插件感知到存放第一私钥节点变化时,读取该节点的数据以得到第一私钥。利用位于rsa中的第一私钥对post请求正文进行加签得到签名串参数sign,将该签名串参数放入到http的请求头中形成请求头签名串参数,其中,key为参数sign,value为参数sign值。以便接收到zookeeper端调用restful风格的http接口的请求,可以得到用于验证的请求头签名串参数和请求正文。

restful(representationalstatetransfer),主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

在一实施例中,所述指定节点为rsa/private节点。

在本实施例中,zookeeper端中包括有多种形式的节点,在本实施例中,发送单元将第一私钥写入到路径为zookeeper/rsa/private中,private节点用于在java中控制访问权限。

在本实施例中,zookeeper端的权限控制模式为acldigest,其中acl(accesscontrollist)digest模式是最常用的权限控制模式,zookeeper端会对形成的权限标识先后进行两次编码处理,依次是sha-1加密算法和base64编码。

其中,获取到的第一私钥是一组字节码,将获取到的第一私钥的字节码通过base64加密得到对应的字符串,将所述第一私钥对应的该字符串写入路径为zookeeper/rsa/private的节点处,zookeeper端通过感知到节点处的变化,读取到对应的字符串,zookeeper端将该字符串转化为字节码的第一私钥。

zookeeper端实时监听路径为/rsa/private的节点处的第一私钥,通过实时感知接收到的第一私钥是否存在变更,若系统将新生成的变更第一私钥发送至zookeeper端的指定节点处,zookeeper端可自动监听第一私钥是否变更过,若获取到第一私钥已变更过,则对所述已变更的第一私钥进行处理,以便系统接收到zookeeper端的请求后,获取到已变更的第一私钥处理形成的请求头签名串参数和请求正文。

base64编码是从二进制到字符的过程,可用于在http环境下传递较长的标识信息。为最常见的用于传输8bit字节码的编码方式之一。

在一实施例中,判断调用接口请求是否正常的装置还包括:

标记模块,用于若验证不通过,则判定所述请求异常,并对所述请求以及所述请求对应的ip地址进行标记。

在本实施例中,判定模块若判断收到的所述zookeeper端调用所述http接口的请求是异常的,则会调用的接口被第三方恶意攻击,此时调用http请求并不一定由zookeeper端发起,则标记模块将发起的ip地址以及请求进行标记,以便下次若检测到依然采用同一个ip地址发起的请求,且是想解签的情况下,进行报警,防止第三方恶意攻击、串改成功。

在一实施例中,生成模块包括:

生成单元,用于根据预设的时间间隔,生成最新的第一公钥以及最新的第一私钥;

第二发送单元,用于将所述最新的第一私钥发送至所述zookeeper端的指定节点处,其中,所述zookeeper端通过所述最新的第一私钥加密所述http接口的请求正文得到新的签名串参数,并将所述新的新的签名串参数设于所述http接口的请求头中形成新的请求头签名串参数。

在本实施例中,为了防止长期使用第一私钥进行加密zookeeper端,容易被第三方恶意攻击且实现串改,可通过一段时间间隔代码,在指定的时间段,如一小时或者两小时等,系统重新通过非对称加密生成新的互配的第一公钥和第一私钥,其中,每次生成rsa公私钥的字串都是不同且随机的,根据预设的时间,触动系统重新生成新的互配的第一公钥和第一私钥,系统再将第一私钥发送至指定节点,如路径为zookeeper/rsa/private处,以便zookeeper端可以实时监控节点处的第一私钥是否变更过,进而进行下一步的处理。通过非对称加密的方式进行加密,以便确保系统提供的接口不被冒用、串改。

在一实施例中,验证模块包括:

判断单元,用于判断所述第一公钥是否可以解开所述请求头签名串参数;

判定单元,用于若可以解开,则判定验证通过。

在本实施例中,当接收模块接收到zookeeper端的请求所得到的请求头签名串参数和请求正文,验证模块通过第一公钥对请求正文和签名串参数进行验证,判断单元判断第一公钥是否可以解开zookeeper端的调用请求所得到的参数,若可以解开,则可以得到解开的所述请求头签名串参数对应的请求正文以及签名串参数,进而在签名串参数中剔除出第一私钥,并将剔除的第一私钥与平台系统中生成的第一私钥进行对比,若一致,则判定但那元验证通过,本次zookeeper发起的请求是正常的,是未经过串改的,允许进行下一步的处理。通过非对称加密生成的第一公钥和第一私钥互相解密,可以防止系统与zookeeper之间交互的接口不被第三方恶意攻击,以保证所有的请求均通过zookeeper发起。

综上所述,为本申请实施例中提供的判断调用接口请求是否正常的装置,将生成的第一私钥发送至zookeeper端的指定节点中,以便接收到zookeeper端调用的http接口的请求时,获取到加密的请求头签名串参数,并通过第一共钥进行解密验证,以便判断zookeeper端调用http接口的请求是否正常,以此判定调用的接口是否存在被篡改或者冒用、攻击。

参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储代码等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种判断调用接口请求是否正常的方法。

上述处理器执行上述判断调用接口请求是否正常的方法的步骤:

接收到zookeeper端调用http接口的请求;

依据所述请求到所述zookeeper端获取所述http接口的请求头签名串参数和请求正文,其中,所述请求头签名串参数为签名串参数设于所述http接口的请求头中形成,所述签名串参数为所述zookeeper端通过第一私钥加密所述http接口的请求正文得到,所述第一私钥为所述平台终端生成并发送给所述zookeeper端的私钥;

通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证;

若验证通过,则判定所述zookeeper端调用所述http接口的请求是正常的。

在一实施例中,所述处理器接收到zookeeper端调用http接口的请求的步骤之前,包括:

通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端。

在一实施例中,所述将所述第一私钥发送给所述zookeeper端的步骤,包括:

将所述第一私钥发送于所述zookeeper端的节点中。

在一实施例中,所述指定节点为rsa/private节点。

在一实施例中,所述处理器通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证的步骤之后,还包括:

若验证不通过,则判定所述请求异常,并对所述请求以及所述请求对应的ip地址进行标记。

在一实施例中,所述处理器通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端的步骤,包括:

根据预设的时间间隔,生成最新的第一公钥以及最新的第一私钥;

将所述最新的第一私钥发送至所述zookeeper端的指定节点处,其中,所述zookeeper端通过所述最新的第一私钥加密所述http接口的请求正文得到新的签名串参数,并将所述新的新的签名串参数设于所述http接口的请求头中形成新的请求头签名串参数。

在一实施例中,所述处理器通过所述第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证的步骤,包括:

判断所述第一公钥是否可以解开所述请求头签名串参数;

若可以解开,则判定验证通过。

本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。

本申请一实施例还提供一种计算机存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种判断调用接口请求是否正常的方法,具体为:

接收到zookeeper端调用http接口的请求;

依据所述请求到所述zookeeper端获取所述http接口的请求头签名串参数和请求正文,其中,所述请求头签名串参数为签名串参数设于所述http接口的请求头中形成,所述签名串参数为所述zookeeper端通过第一私钥加密所述http接口的请求正文得到,所述第一私钥为所述平台终端生成并发送给所述zookeeper端的私钥;

通过与所述第一私钥对应的第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证;

若验证通过,则判定所述zookeeper端调用所述http接口的请求是正常的。

在一实施例中,所述处理器接收到zookeeper端调用http接口的请求的步骤之前,包括:

通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端。

在一实施例中,所述将所述第一私钥发送给所述zookeeper端的步骤,包括:

将所述第一私钥设置于所述zookeeper端的指定节点中。

在一实施例中,所述指定节点为rsa/private节点。

在一实施例中,所述处理器通过与所述第一私钥对应的所述第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证的步骤之后,还包括:

若验证不通过,则判定所述请求异常,并对所述请求以及所述请求对应的ip地址进行标记。

在一实施例中,所述处理器通过非对称加密生成互配的所述第一公钥和所述第一私钥,并将所述第一私钥发送给所述zookeeper端的步骤,包括:

根据预设的时间间隔,生成最新的第一公钥以及最新的第一私钥;

将所述最新的第一私钥发送至所述zookeeper端的指定节点处,其中,所述zookeeper端通过所述最新的第一私钥加密所述http接口的请求正文得到新的签名串参数,并将所述新的新的签名串参数设于所述http接口的请求头中形成新的请求头签名串参数。

在一实施例中,所述处理器通过所述第一公钥对获取到的所述请求头签名串参数和所述请求正文进行验证的步骤,包括:

判断所述第一公钥是否可以解开所述请求头签名串参数;

若可以解开,则判定验证通过。

综上所述,为本申请实施例中提供的判断调用接口请求是否正常的方法、装置和计算机设备,将生成的第一私钥发送至zookeeper端的指定节点中,以便接收到zookeeper端调用的http接口的请求时,获取到加密的请求头签名串参数,并通过第一共钥进行解密验证,以便判断zookeeper端调用http接口的请求是否正常,以此判定调用的接口是否存在被篡改或者冒用、攻击。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram通过多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本申请的专利保护范围内。

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