一种基于应用程序接口的网关验证方法、装置及电子设备与流程

文档序号:17070407发布日期:2019-03-08 23:16阅读:194来源:国知局
一种基于应用程序接口的网关验证方法、装置及电子设备与流程

本发明涉及信息安全技术领域,尤其涉及一种基于应用程序接口的网关验证方法、装置及电子设备。



背景技术:

随着信息化水平的不断提高和互联网技术的不断发展,开放成为了发展的趋势,越来越多的产品走向开放化,而api(applicationprogramminginterface,应用程序接口,应用程序接口是一组定义、程序及协议的集合,通过api接口实现计算机软件之间的相互通信)作为开放的核心载体,被越来越多的企业所采用。为了管理api企业往往会选择kong(kong是在客户端和(微)服务端转发api通信的api网关)等开源api网关进行统一验证,授权,管理,调度。

而开源网关kong的hmac(hmac是密钥相关的哈希运算消息认证码,hmac运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出)验证,只能进行用户身份验证,无法保证请求api地址及请求数据不被篡改,给信息安全造成隐患。



技术实现要素:

有鉴于此,本发明实施例提供一种基于应用程序接口的网关验证方法、装置及电子设备,能够提高网络和应用资源的信息安全性。

第一方面,本发明实施例提供一种基于应用程序接口的网关验证方法,应用于客户端,所述方法包括:生成包含用户特征信息和请求内容的第一签名;其中,所述请求内容包括请求地址和/或请求参数;向服务端发送api访问请求,所述api访问请求中携带用户名、请求内容和所述第一签名,以使服务端根据所述api访问请求中携带的第一签名,验证所述请求内容是否被修改。

根据本发明实施例的一种具体实现方式,所述用户特征信息包括:用户名和预先分配的密钥;所述生成包含用户特征信息和请求内容的第一签名,包括:将用户名、预先分配的密钥及请求内容,拼接成字符串;基于所述字符串生成哈希值;将所述哈希值转换为第一签名。

根据本发明实施例的一种具体实现方式,所述api访问请求中还携带有客户端时间戳;其中,所述生成包含用户特征信息和请求内容的签名,包括:将用户名、预先分配的密钥、请求内容及客户端时间戳,拼接成字符串;基于所述字符串生成哈希值;将所述哈希值转换为第一签名。

第二方面,本发明实施例提供一种基于应用程序接口的网关验证方法,应用于服务端,所述方法包括:接收客户端发送的api访问请求;解析所述api访问请求,获得所述api访问请求中携带的用户名、请求内容和第一签名;根据所述api访问请求中携带的第一签名,验证所述请求内容是否被修改。

根据本发明实施例的一种具体实现方式,根据所述api访问请求中携带的第一签名,验证所述请求内容是否被修改,包括:根据所述用户名,判断服务端是否保存有所述用户名;若服务端保存有所述用户名,则基于所述api访问请求中携带的用户名、请求内容,根据所述第一签名生成规则生成第二签名;将第二签名与第一签名进行比对,如二者相同,则请求通过,否则,请求失败。

根据本发明实施例的一种具体实现方式,根据所述api访问请求中携带的第一签名,验证所述请求内容是否被修改,包括:根据所述用户名,判断服务端是否保存有与所述用户名相对应的密钥;若服务端保存有与所述用户名相对应的密钥,则基于服务端保存的与所述用户名相对应的密钥、所述api访问请求中携带的用户名和请求内容,基于所述第一签名生成规则生成第二签名;将第二签名与第一签名进行比对,如二者相同,则请求通过,否则,请求失败。

根据本发明实施例的一种具体实现方式,解析所述api访问请求后,还获得所述api访问请求中携带的客户端时间戳;在解析所述api访问请求,获得所述api访问请求中携带的用户名、请求内容、客户端时间戳和第一签名之后,在根据所述api访问请求中携带的第一签名,验证所述请求内容是否被修改之前,所述方法还包括:判断所述客户端时间戳与当前时间的时间差是否小于预设阈值;若所述客户端时间戳与当前时间的时间差小于预设阈值,则验证通过,否则,验证失败。

第三方面,本发明实施例提供一种基于应用程序接口的网关验证装置,应用于客户端,所述装置包括:第一签名生成模块,用于生成包含用户特征信息和请求内容的第一签名;其中,所述请求内容包括请求地址和/或请求参数;发送模块,用于向服务端发送api访问请求,所述api访问请求中携带有用户名、请求内容和所述第一签名,以使服务端根据所述api访问请求中携带的第一签名,验证所述请求内容是否被修改。

根据本发明实施例的一种具体实现方式,所述用户特征信息包括用户名和预先分配的密钥;所述第一签名生成模块包括拼接单元、算法单元和转换单元,其中,拼接单元,用于将用户名、预先分配的密钥及请求内容,拼接成字符串;算法单元,用于基于所述字符串生成哈希值;转换单元,用于将所述哈希值转换为第一签名。

根据本发明实施例的一种具体实现方式,所述api访问请求中还携带有客户端时间戳;所述第一签名生成模块包括拼接单元、算法单元和转换单元,其中,拼接单元,用于将用户名、预先分配的密钥、请求内容及客户端时间戳,拼接成字符串;算法单元,用于基于所述字符串生成哈希值;转换单元,用于将所述哈希值转换为第一签名。

第四方面,本发明实施例提供一种基于应用程序接口的网关验证装置,应用于服务端,所述装置包括:接收模块,用于接收客户端发送的api访问请求;解析模块,用于解析所述api访问请求,获得所述api访问请求中携带的用户名、请求内容和第一签名;第一验证模块,用于根据所述api访问请求中携带的第一签名,验证所述请求内容是否被修改。

根据本发明实施例的一种具体实现方式,所述第一验证模块包括判断单元、第二签名生成单元和比对单元,其中,判断单元,用于根据所述用户名,判断服务端是否保存有所述用户名;第二签名生成单元,用于若服务端保存有所述用户名,则基于所述api访问请求中携带的用户名、请求内容,根据所述第一签名生成规则生成第二签名;比对单元,用于将第二签名与第一签名进行比对,如二者相同,则请求通过,否则,请求失败。

根据本发明实施例的一种具体实现方式,所述第一验证模块包括判断单元、第二签名生成单元和比对单元,其中,判断单元,用于根据所述用户名,判断服务端是否保存有与所述用户名相对应的密钥;第二签名生成单元,若服务端保存有与所述用户名相对应的密钥,则基于服务端保存的与所述用户名相对应的密钥、所述api访问请求中携带的用户名和请求内容,基于所述第一签名生成规则生成第二签名;比对单元,用于将第二签名与第一签名进行比对,如二者相同,则请求通过,否则,请求失败。

根据本发明实施例的一种具体实现方式,所述解析模块用于解析所述api访问请求,获得所述api访问请求中携带的用户名、请求内容、客户端时间戳和第一签名;所述装置还包括第二验证模块,所述第二验证模块用于判断所述客户端时间戳与当前时间的时间差是否小于预设阈值;若所述客户端时间戳与当前时间的时间差小于预设阈值,则验证通过,否则,验证失败。

第五方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实现方式所述的方法。

第六方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明任一实施方式所述的方法。

本发明实施例提供的一种基于应用程序接口的网关验证置方法、装置及电子设备,通过客户端生成包含用户特征信息和请求内容的第一签名;其中,所述请求内容包括请求地址和/或请求参数;向服务端发送携带用户名、请求内容和所述第一签名的api访问请求,以使服务端根据所述api访问请求中携带的第一签名,验证所述请求内容是否被修改;解决了现有开源网关kong的hmac验证,无法判断请求参数及请求地址是否被篡改的问题,能够防止请求信息被窃取后,冒用身份请求,提高了网络和应用资源的信息安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例一的基于应用程序接口的网关验证方法的流程示意图;

图2为本发明实施例一的基于应用程序接口的网关验证方法一可选实施方式的流程示意图;

图3为本发明实施例一的基于应用程序接口的网关验证方法另一可选实施方式的流程示意图;

图4为本发明实施例二的基于应用程序接口的网关验证方法的流程示意图;

图5为本发明实施例二的基于应用程序接口的网关验证方法一可选实施方式的流程示意图;

图6为本发明实施例二的基于应用程序接口的网关验证方法另一可选实施方式的流程示意图;

图7为本发明实施例三的基于应用程序接口的网关验证装置的结构示意图;

图8为本发明实施例三的基于应用程序接口的网关验证装置一可选实施方式的结构示意图;

图9为本发明实施例四的基于应用程序接口的网关验证装置的结构示意图;

图10为本发明实施例四的基于应用程序接口的网关验证装置一可选实施方式的结构示意图;

图11为本发明实施例四的基于应用程序接口的网关验证装置再一可选实施方式的结构示意图;

图12为本发明电子设备一个实施例的结构示意图。

具体实施方式

下面结合附图对本发明实施例进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

第一方面,本实施例提供一种基于应用程序接口的网关验证方法,以提高网络和应用资源的信息安全性。

图1为本发明实施例一的基于应用程序接口的网关验证方法的流程示意图,如图1所示,本实施例应用于客户端。本实施例的方法包括:

步骤101、生成包含用户特征信息和请求内容的第一签名;其中,所述请求内容包括请求地址和/或请求参数;

本实施例,所述用户特征信息包括用户名,所述请求内容包括请求地址和/或请求参数,若服务端只需验证api访问请求中的请求地址是否被修改,则客户端只需生成包含所述用户特征信息和请求地址的第一签名即可;若服务端只需验证api访问请求中的请求参数是否被修改,则客户端只需生成包含所述用户特征信息和请求参数的第一签名即可;若服务端既验证api访问请求中的请求地址是否被修改,也验证api访问请求中的请求参数是否被修改,则客户端就需要生成包含所述用户特征信息、请求地址和请求参数的第一签名。

步骤102、向服务端发送api访问请求,所述api访问请求中携带用户名、请求内容和所述第一签名,以使服务端根据所述api访问请求中携带的第一签名,验证所述请求内容是否被修改。

本实施例,通过客户端生成包含用户特征信息和请求内容的第一签名;其中,所述请求内容包括请求地址和/或请求参数;向服务端发送携带有用户名、请求内容和所述第一签名的api访问请求(向服务端发送的api访问请求中的请求内容包括请求参数和请求地址),以使服务端根据所述api访问请求中携带的第一签名,验证所述请求内容是否被修改;解决了现有开源网关kong的hmac验证,无法判断请求参数及请求地址是否被篡改的问题,能够防止请求信息被窃取后,冒用身份请求,提高了网络和应用资源的信息安全性。

如图2所示,根据本发明实施例的一可选实现方式,所述用户特征信息包括:用户名和预先分配的密钥;上述步骤101包括:

步骤1011a、将用户名、预先分配的密钥及请求内容,拼接成字符串;

本实施例,服务端针对每一个用户,预先分配一个用户名-密钥的密钥对,因此,每一用户都有一个预先分配的秘钥;客户端将包含用户名和预先分配的秘钥的用户特征信息及请求内容,拼接成一个字符串;可选的,可以将用户名、预先分配的秘钥以及请求内容,按照ascii码排序并拼接成一个字符串。

步骤1012a、基于所述字符串生成哈希值;

本实施例,将步骤1011中拼接成的字符串,通过散列算法(散列算法是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做哈希值的指纹。哈希值通常用一个短的随机字母和数字组成的字符串来代表)生成不可逆的哈希值。可选的,可以通过sha256算法(散列算法中的其中一种)将所述字符串生成不可逆的哈希值。

步骤1013a、将所述哈希值转换为第一签名。

本实施例,通过将包含用户名和预先分配的秘钥的用户特征信息及请求内容,拼接成一个字符串,并将所述字符串通过散列算法生成不可逆的哈希值,然后将所述哈希值转换为第一签名后随api访问请求发送给服务端,由于所述第一签名具有不可逆的特性,因此,可以防止所述第一签名被窃取后进行更改,从而使服务端能够根据所述api访问请求中携带的不可逆的第一签名,验证所述请求内容是否被修改;解决了现有开源网关kong的hmac验证,无法判断请求参数及请求地址是否被篡改的问题,能够防止请求信息被窃取后,冒用身份请求,提高了网络和应用资源的信息安全性。

如图3所示,根据本发明实施例的另一可选实现方式,所述api访问请求中还携带有客户端时间戳;其中,所述生成包含用户特征信息和请求内容的签名,包括:

步骤1011b、将用户名、预先分配的密钥、请求内容及客户端时间戳,拼接成字符串;

步骤1012b、基于所述字符串生成哈希值;

步骤1013b、将所述哈希值转换为第一签名。

本实施例,步骤1011b、步骤1012b以及步骤1013b中所述方法与上述步骤1011a、步骤1012a以及步骤1013a中所述方法的实现原理和达到的技术效果类似,在此不再赘述。

本实施例,所述api访问请求中携带的客户端时间戳,可以使服务端验证api访问请求中的客户端时间戳与服务端当前时间的差值是否在预设时间范围内,如果不在预设时间范围内,则所述api访问请求发送的时间过长,验证失败,不对所述api访问请求做回应,无需再验证所述api访问请求的请求内容是否被修改。例如:

用户a在b时刻对订单详情api发起访问请求,携带参数orderid=1,签名为signaturea,即用户发送的api访问请求中,携带用户名a、订单详情api地址、请求参数orderid=1、时间戳b、由用户名a、预先分配的密钥、订单详情api地址、请求参数orderid=1、时间戳b生成的签名signaturea。所述签名signaturea的生成规则为:将用户名a、预先分配的密钥、订单详情api地址、请求参数orderid=1及时间戳b,拼接成字符串,基于所述字符串生成哈希值,将所述哈希值转换为签名signaturea。

可选的,所述验证方法还包括:

步骤103、接收服务端返回的请求结果数据。

本实施例,若服务端验证所述api访问请求中的请求内容未被修改,则服务端响应所述api访问请求,将请求结果数据发送给客户端,客户端接收并解析所述服务端发送的请求结果数据,并在应用程序的显示界面上显示所述请求结果数据。

若服务端验证不通过,则服务端可能返回验证失败的通知信息或不作回复;若服务端返回验证失败的通知信息,则客户端接收所述验证失败的通知信息,并在应用程序的显示界面上显示验证失败(或验证不通过、请求失败、访问无效等)以提醒用户;若服务端验证不通过且未对所述访问请求做回应,则客户端可以预先设定一时间阈值,若服务端响应所述访问请求的时间超出所述时间阈值,则在应用程序的显示界面上显示响应超时(未响应、访问出错等)以提醒用户。

第二方面,本实施例提供一种基于应用程序接口的网关验证方法,以提高网络和应用资源的信息安全性。

图4为本发明实施例二的基于应用程序接口网关的验证方法的流程示意图,如图4所示,本实施例应用于服务端。本实施例的方法包括:

步骤201、接收客户端发送的api访问请求;

本实施例,所述api访问请求包括用户名、请求内容和第一签名,所述第一签名由所述用户名、请求内容生成。

步骤202、解析所述api访问请求,获得所述api访间请求中携带的用户名、请求内容和第一签名;

步骤203、根据所述api访问请求中携带的第一签名,验证所述请求内容是否被修改。

本实施例,服务端接收客户端发送的api访问请求,所述api访问请求包括用户名、请求内容和第一签名,所述第一签名由所述用户名、请求内容生成;解析所述api访问请求,获得所述api访问请求中携带的用户名、请求内容和第一签名;根据所述api访问请求中携带的第一签名,验证所述请求内容是否被修改;解决了现有开源网关kong的hmac验证,无法判断请求参数及请求地址是否被篡改的问题,能够防止请求信息被窃取后,冒用身份请求,提高了网络和应用资源的信息安全性。

如图5所示,根据本发明实施例的一可选实现方式,上述步骤203包括:

步骤2031a、根据所述用户名,判断服务端是否保存有所述用户名;

本实施例,服务端针对每一个用户预先分配一个用户名,并将所述信息保存在服务端;服务端在服务端查找是否保存有api访问请求中携带的所述用户名。可以判断出该用户是否被授权访问;若服务端没有保存所述用户名,则该用户名没有被授权访问,所述api访问请求失败;若服务端保存有所述用户名,则执行下述步骤2032a。

步骤2032a、若服务端保存有所述用户名,则基于所述api访问请求中携带的用户名、请求内容,根据所述第一签名生成规则生成第二签名;

步骤2033a、将第二签名与第一签名进行比对,如二者相同,则请求通过,否则,请求失败。

本实施例,服务端根据所述用户名,判断服务端是否保存有所述用户名,若服务端保存有所述用户名,则该用户有访问权限,服务端将所述api访问请求中携带的用户名和请求内容,根据所述第一签名生成规则生成第二签名,并将第二签名与第一签名进行比对,如二者相同,则所述请求内容没有被恶意修改,请求通过,否则,请求失败。本实施例的服务端将接收到的请求内容与客户端发送的原始请求进行比对,可以判断出客户端发出的api访问请求中的请求内容是否被恶意修改,解决了现有开源网关kong的hmac验证,无法判断请求参数及请求地址是否被篡改的问题,能够防止请求信息被窃取后,冒用身份请求,提高了网络和应用资源的信息安全性。

如图6所示,根据本发明实施例的另一可选实现方式,根据所述api访问请求中携带的第一签名,验证所述请求内容是否被修改,包括:

步骤2031b、根据所述用户名,判断服务端是否保存有与所述用户名相对应的密钥;

本实施例,服务端针对每一个用户,预先分配一个用户名-密钥的密钥对,并将所述信息保存在服务端;因此,每一用户都有一个预先分配的秘钥,服务端在服务端查找是否保存有与所述用户名相对应的密钥。可以判断出该用户是否被授权访问;若服务端没有保存与所述用户名相对于的密钥,则该用户名没有被授权访问,所述api访问请求失败;若服务端保存有与所述用户名相对于的密钥,则执行下述步骤2032b。

步骤2032b、若服务端保存有与所述用户名相对应的密钥,则基于服务端保存的与所述用户名相对应的密钥、所述api访问请求中携带的用户名和请求内容,基于所述第一签名生成规则生成第二签名;

步骤2033b、将第二签名与第一签名进行比对,如二者相同,则请求通过,否则,请求失败。

本实施例,服务端根据所述用户名获得保存的与所述用户名相对应的密钥,并将所述密钥、所述api访问请求中携带的用户名和请求内容,根据所述第一签名生成规则生成第二签名,将第二签名与第一签名进行比对,如二者相同,则所述请求内容没有被恶意修改,请求通过,否则,请求失败。本实施例的服务端将接收到的请求内容与客户端发送的原始请求进行比对,可以判断出客户端发出的api访问请求中的请求内容是否被恶意修改,能够提高网络和应用资源的信息安全性。另外,客户端在发送所述api访问请求时,将与用户名相对应的密钥的特征信息封存在所述第一签名中,可以防止所述密钥被恶意窃取,从而能够有效的减少与所述用户名对应的密钥被窃取的风险。

根据本发明实施例的再一可选实现方式,解析所述api访问请求后,还获得所述api访问请求中携带的客户端时间戳;在解析所述api访问请求,获得所述api访问请求中携带的用户名、请求内容、客户端时间戳和第一签名之后,在根据所述api访问请求中携带的第一签名,验证所述请求内容是否被修改之前,所述方法还包括:

判断所述客户端时间戳与当前时间的时间差是否小于预设阈值;

若所述客户端时间戳与当前时间的时间差小于预设阈值,则验证通过,否则,验证失败。

本实施例,可以提前设定一阈值,例如:预设阈值为3分钟。服务端解析所述api访问请求,获得所述api访问请求中携带的用户名、请求内容、客户端时间戳和第一签名后,判断所述客户端时间戳与当前时间的时间差是否小于预设阈值;若所述客户端时间戳与当前时间的时间差不小于预设阈值,则所述api访问请求发送的时间过长,验证失败,不对所述api访问请求做回应,无需再验证所述api访问请求的请求内容是否被修改;若所述客户端时间戳与当前时间的时间差小于预设阈值,则验证通过,执行根据所述api访问请求中携带的第一签名,验证所述请求内容是否被修改之前的操作。例如:

用户a在b时刻对订单详情api发起访问请求,携带参数orderid=1,签名为signaturea,即用户发送的api访问请求中,携带用户名a、订单详情api地址、请求参数orderid=1、时间戳b、由用户名a、与用户名对应的密钥、订单详情api地址、请求参数orderid=1、时间戳b生成的签名signaturea,在请求过程中请求参数orderid=1被人恶意篡改为orderid=2,服务端收到所述api访问请求后:

解析所述api访问请求,获得所述api访问请求中携带的用户名a、订单详情api地址、请求参数orderid=2、时间戳b、签名signaturea;

判断服务端当前时间与时间戳b之间的时间差是否小于3分钟若是,则执行下述操作;

查询用户名a是否存在,若用户名a存在,则获取与用户名a对应的密钥;

将用户名a、与用户名对应的密钥、订单详情api地址、请求参数orderid=2、时间戳b,基于所述签名signaturea得生成规则生成签名signatureb;

将生成的签名signatureb与签名signaturea进行对比,因参数orderid被修改,signatureb与signaturea不等,请求不通过。

可选的,所述验证方法还包括:

步骤204、若所述请求内容未被修改,则将请求结果数据发送给客户端。

本实施例,若服务端验证所述api访问请求中的请求内容未被修改,则服务端响应所述api访问请求,将请求结果数据发送给客户端。

若服务端验证所述api访问请求中的请求内容被修改,则服务端可以返回验证失败的通知信息或不作回复。

第三方面,本实施例提供一种基于应用程序接口网关的验证装置,以提高网络和应用资源的信息安全性。

图7为本发明实施例三的基于应用程序接口网关的验证装置的结构示意图,如图7所示,本实施例应用于客户端。本实施例的装置包括:第一签名生成模块31,用于生成包含用户特征信息和请求内容的第一签名;其中,所述请求内容包括请求地址和/或请求参数;发送模块32,用于向服务端发送api访问请求,所述api访问请求中携带有用户名、请求内容和所述第一签名,以使服务端根据所述api访问请求中携带的第一签名,验证所述请求内容是否被修改。

本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

如图8所示,根据本发明实施例的一可选实现方式,所述用户特征信息包括用户名和预先分配的密钥;所述第一签名生成模块31包括拼接单元311、算法单元312和转换单元313,其中,拼接单元311,用于将用户名、预先分配的密钥及请求内容,拼接成字符串;算法单元312,用于基于所述字符串生成哈希值;转换单元313,用于将所述哈希值转换为第一签名。

本实施例的装置,可以用于执行图1或图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

根据本发明实施例的另一可选实现方式,所述api访问请求中还携带有客户端时间戳;所述第一签名生成模块包括拼接单元、算法单元和转换单元,其中,拼接单元,用于将用户名、预先分配的密钥、请求内容及客户端时间戳,拼接成字符串;算法单元,用于基于所述字符串生成哈希值;转换单元,用于将所述哈希值转换为第一签名。

本实施例的装置,可以用于执行图1或图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

可选的,所述装置还包括接收模块,所述接收模块用于若服务端验证通过,则接收服务端返回的请求结果数据。

本实施例的装置,若服务端验证所述api访问请求中的请求内容未被修改,则服务端响应所述api访问请求,将请求结果数据发送给客户端,客户端的接收模块接收并解析所述服务端发送的请求结果数据,并在应用程序的显示界面上显示所述请求结果数据。

第四方面,本实施例提供一种基于应用程序接口网关的验证装置,以提高网络和应用资源的信息安全性。

图9为本发明实施例四的基于应用程序接口网关的验证装置的结构示意图,如图9所示,本实施例应用于服务端。本实施例的装置包括:接收模块41,用于接收客户端发送的api访问请求;解析模块42,用于解析所述api访问请求,获得所述api访问请求中携带的用户名、请求内容和第一签名;第一验证模块43,用于根据所述api访问请求中携带的第一签名,验证所述请求内容是否被修改。

本实施例的装置,可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

如图10所示,根据本发明实施例的一可选实现方式,所述第一验证模块43包括判断单元431、第二签名生成单元432和比对单元433,其中,判断单元431,用于根据所述用户名,判断服务端是否保存有所述用户名;第二签名生成单元432,用于若服务端保存有所述用户名,则基于所述api访问请求中携带的用户名、请求内容,根据所述第一签名生成规则生成第二签名;比对单元433,用于将第二签名与第一签名进行比对,如二者相同,则请求通过,否则,请求失败。

本实施例的装置,可以用于执行图4或图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

根据本发明实施例的另一可选实现方式,所述第一验证模块包括判断单元、第二签名生成单元和比对单元,其中,判断单元,用于根据所述用户名,判断服务端是否保存有与所述用户名相对应的密钥;第二签名生成单元,若服务端保存有与所述用户名相对应的密钥,则基于服务端保存的与所述用户名相对应的密钥、所述api访问请求中携带的用户名和请求内容,基于所述第一签名生成规则生成第二签名;比对单元,用于将第二签名与第一签名进行比对,如二者相同,则请求通过,否则,请求失败。

本实施例的装置,可以用于执行图4或图6所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

如图11所示,根据本发明实施例的再一可选实现方式,所述解析模块42用于解析所述api访问请求,获得所述api访问请求中携带的用户名、请求内容、客户端时间戳和第一签名;所述装置还包括第二验证模块44,所述第二验证模块44用于判断所述客户端时间戳与当前时间的时间差是否小于预设阈值;若所述客户端时间戳与当前时间的时间差小于预设阈值,则验证通过,否则,验证失败。

本实施例的装置,可以用于执行实施例二所述方法的技术方案,其实现原理和技术效果类似,此处不再赘述。

可选的,所述装置还包括发送模块,所述发送模块用于若所述请求内容未被修改,则将请求结果数据发送给客户端。

第五方面,图12为本发明电子设备一个实施例的结构示意图,可以实现本发明实施例一和实施例二方法的流程,如图12所示,上述电子设备可以包括:壳体51、处理器52、存储器53、电路板54和电源电路55,其中,电路板54安置在壳体51围成的空间内部,处理器52和存储器53设置在电路板54上;电源电路55,用于为上述电子设备的各个电路或器件供电;存储器53用于存储可执行程序代码;处理器52通过读取存储器53中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的方法。

处理器52对上述步骤的具体执行过程以及处理器52通过运行可执行程序代码来进一步执行的步骤,可以参见本发明实施例一和实施例二的描述,在此不再赘述。

该电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iphone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如ipod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子设备。

第六方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明任一实施方式所述的方法。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些

实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包

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

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。

尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

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