CN111314306A - 接口访问方法及装置、电子设备、存储介质 - Google Patents
接口访问方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN111314306A CN111314306A CN202010057153.5A CN202010057153A CN111314306A CN 111314306 A CN111314306 A CN 111314306A CN 202010057153 A CN202010057153 A CN 202010057153A CN 111314306 A CN111314306 A CN 111314306A
- Authority
- CN
- China
- Prior art keywords
- signature
- access
- interface
- annotation
- access request
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供了一种接口访问方法及装置、电子设备、存储介质,该方案包括:拦截客户端发送的访问请求;根据访问请求携带的访问地址,映射得到访问地址对应的访问接口;根据为不同接口预先配置的签名注解,判断访问接口是否存在对应配置的签名注解;根据访问接口是否存在签名注解,确定是否执行验签操作;若执行所述验签操作,则基于所述验签操作的验签结果,向所述客户端返回所述访问请求对应的访问结果。由此对于需要验签的接口,服务端可以执行同一套验签代码,无需为每个接口添加验签代码,从而节省开发成本,降低服务端侧的负载。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种接口访问方法及装置、电子设备、计算机可读存储介质。
背景技术
随着网络信息篡改等问题的显现,网络信息有效性成为关注焦点。对外开放的互联网接口可能会面临伪装攻击、篡改攻击、重放攻击以及数据信息泄漏的风险。
在互联网服务端程序设计与开发中,对于一些敏感的互联网接口通常需要验证签名,以保证接口的安全性。但是服务端接口较多,为每个接口均开发一套验证签名的逻辑,无疑增加了开发成本,增加了服务端的负载。
发明内容
本申请实施例提供了一种接口访问方法,用以降低开发成本,减轻服务端的负载。
本申请提供了一种接口访问方法,包括:
拦截客户端发送的访问请求;
根据所述访问请求携带的访问地址,映射得到所述访问地址对应的访问接口;
根据为不同接口预先配置的签名注解,判断所述访问接口是否存在对应配置的签名注解;
根据所述访问接口是否存在签名注解,确定是否执行验签操作;
若执行所述验签操作,则基于所述验签操作的验签结果,向所述客户端返回所述访问请求对应的访问结果。
在一实施例中,所述根据所述访问接口是否存在签名注解,确定是否执行验签操作,包括:
若所述访问接口存在签名注解,执行所述验签操作。
在一实施例中,所述根据所述访问接口是否存在签名注解,确定是否执行验签操作,包括:
若所述访问接口不存在签名注解,判断所述访问请求指示的业务方法是否存在签名注解,若存在,执行所述验签操作。
在一实施例中,所述执行所述验签操作,包括:
解析所述访问请求携带的签名信息,获得时间戳;
比较所述时间戳与当前时间点,根据比较结果判断所述访问请求是否过期;
在所述访问请求没有过期时,校验所述签名信息包含的签名字符串,得到验签结果。
在一实施例中,所述校验所述签名信息包含的签名字符串,得到验签结果,包括:
根据解析所述签名信息获得的应用标识,查询所述应用标识对应的密钥;
根据所述访问请求携带的接口参数,利用所述密钥对所述接口参数进行加密,得到加密字符串;
将所述加密字符串与所述签名信息包含的签名字符串进行一致性比对,得到验签结果。
在一实施例中,所述根据所述访问请求携带的接口参数,利用所述密钥对所述接口参数进行加密,得到加密字符串,包括:
获取所述签名注解中指示的忽略参数;
从所述接口参数中过滤掉所述忽略参数,得到签名参数;
将所述签名参数以及解析所述签名信息获得的时间戳和随机字符,通过所述密钥进行加密,得到所述加密字符串。
在一实施例中,所述基于所述验签操作的验签结果,向所述客户端返回所述访问请求对应的访问结果,包括:
若所述验签结果为所述加密字符串与所述签名信息包含的签名字符串一致,利用所述接口参数调用相应的业务方法;
向所述客户端返回调用所述业务方法产生的业务数据。
在一实施例中,所述基于所述验签操作的验签结果,向所述客户端返回所述访问请求对应的访问结果,包括:
若所述验签结果为所述加密字符串与所述签名信息包含的签名字符串不一致,向所述客户端返回验签失败的提示信息。
在一实施例中,所述根据所述访问接口是否存在签名注解,确定是否执行验签操作,包括:
若所述访问接口与所述访问请求指示的业务方法均不存在签名注解,确定不执行验签操作;
根据所述访问请求携带的接口参数调用相应的业务方法,并向所述客户端返回调用所述业务方法产生的业务数据。
本申请实施例还提供了一种接口访问装置,包括:
请求拦截模块,用于拦截客户端发送的访问请求;
接口映射模块,用于根据所述访问请求携带的访问地址,映射得到所述访问地址对应的访问接口;
注解判断模块,用于判断所述访问接口是否存在对应配置的签名注解;
验签判断模块,用于根据所述访问接口是否存在签名注解,确定是否执行验签操作;
结果返回模块,用于若执行所述验签操作时,基于所述验签操作的验签结果,向所述客户端返回所述访问请求对应的访问结果。
另外,本申请还提供了一种电子设备,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述接口访问方法。
进一步,本申请还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述接口访问方法。
本申请上述实施例提供的技术方案,服务端为需要验签的接口添加了签名注解,从而对于客户端需要访问的接口,基于该访问接口是否存在签名注解,确定是否执行验签操作,并基于验签结果,向客户端返回访问结果,由此对于需要验签的接口,服务端可以执行同一套验签代码,无需为每个接口添加验签代码,从而节省开发成本,降低服务端侧的负载。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的一种接口访问方法的应用场景示意图;
图2是本申请实施例提供的数据访问方法的流程示意图;
图3是本申请一实施例示出的签名工具类的架构示意图;
图4是本申请一实施例示出的签名正确时的调用示意图;
图5是本申请一实施例示出的签名错误时的调用示意图;
图6是本申请一实施例示出的执行验签操作的流程示意图;
图7是图6对应实施例中步骤630的细节流程图;
图8是本申请一实施例提供的接口访问方法的完整流程示意图;
图9是本申请一实施例示出的接口访问装置的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
图1是本申请实施例提供的一种接口访问方法的应用场景示意图,如图1所示,该应用场景包括服务端110以及多个客户端120。客户端120与服务端110之间通过有线或无线网络连接。客户端120可以是个人电脑(personal computer,PC)、平板电脑、智能手机、个人数字助理(personal digital assistant,PDA)等。服务端110可以是服务器、服务器集群或者云计算中心。
对于敏感的互联网接口可以提前配置签名注解,从而服务端110在接收到访问请求时,可以采用本申请提供的方法,先拦截客户端120发送的访问请求,判断访问接口是否存在签名注解,从而确定访问接口是否需要验签,对于需要验签的访问接口,在执行具体业务方法前,先执行一段验证签名的代码片段,再执行具体业务方法,并向客户端120返回业务数据。由此,业务开发人员在写接口业务时,无需为每个接口写一段验证签名的逻辑,通过统一管理所有接口,基于签名注解可以确定需要验签的接口,从而在访问这些接口前,统一执行验签操作。
本申请还提供了一种电子设备,该电子设备可以是服务端110。如图1所示,服务端110可以包括处理器111;用于存储处理器111可执行指令的存储器112;其中,处理器111被配置为执行本申请提供的接口访问方法。
存储器112可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
本申请还提供的一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序可由处理器111执行以完成本申请提供的接口访问方法。
图2是本申请实施例提供的数据访问方法的流程示意图。该方法可以由服务端执行,如图2所示,该方法包括以下步骤210-步骤250。
在步骤210中,服务端拦截客户端发送的访问请求。
其中,拦截是指服务端接收到客户端发送的访问请求后,没有直接访问业务接口。其中,访问请求可以是支付请求、网页浏览请求、登录请求等,不同访问请求可以对接一个或多个业务接口。访问请求可以携带访问地址、接口参数(解释见下文),对于安全性要求较高的访问接口,访问请求还可以携带签名信息等。
在步骤220中,根据所述访问请求携带的访问地址,映射得到所述访问地址对应的访问接口。
其中,访问地址可以是统一资源标识符(Uniform Resource Identifier,URI)。访问接口就是上文提到的业务接口,服务端可以有多个业务接口,不同业务接口执行不同的业务逻辑。服务端提前存储不同访问接口对应的访问地址,之后,根据访问请求包含的访问地址,可以确定该访问地址对应的访问接口。
在步骤230中,根据为不同接口预先配置的签名注解,判断所述访问接口是否存在对应配置的签名注解。
在步骤240中,根据所述访问接口是否存在签名注解,确定是否执行验签操作。
其中,签名注解是指对安全性要求较高的业务接口进行了标记,具有签名注解的接口可以认为被标记了,在执行具体业务方法前,需要先验证签名。对于安全性要求较高的接口,客户端发送的访问请求中会携带签名,验签操作是指服务端查询签名密钥,生成签名,并校验客户端发送的签名是否正确。
在一实施例中,服务端通过签名注解提前标记了需要验证签名的业务接口,当从访问请求中解析出访问地址,并基于访问地址映射得到访问接口后,服务端可以判断该访问接口是否具有签名注解,如果有,可以认为在调用访问接口的具体业务方法前,需要先验证签名,在验签成功后,才能调用具体业务方法。如果访问接口没有签名注解,可以直接调用具体业务方法。具体调用哪种业务方法可以根据访问请求的指示确定。
业务方法可以认为是业务运行的逻辑程序,例如支付程序、登录程序。一个访问接口可能存在多个业务方法,而有些业务方法可能安全性要求较高。服务端可以对需要进行签名验证的方法添加签名注解。因此在另一实施例中,如果访问接口不具有签名注解,服务端可以继续判断访问请求指示的业务方法是否存在签名注解。若存在,则先验证签名,在验签成功后,才调用具体业务方法。由此,对于同一访问接口,可以自定义需要验签的业务方法,增加接口灵活性。
在一实施例中,如果访问接口和访问请求指示的业务方法均不存在签名注解,则可以不用执行验签操作,直接调用相应的业务方法。
在步骤250中,若执行所述验签操作,则基于所述验签操作的验签结果,向所述客户端返回所述访问请求对应的访问结果。
其中,验签结果包括:验签成功或验签失败。访问结果可以包括:验签失败的提示信息或业务数据。其中,业务数据是通过执行业务方法获得的。
如果验证签名失败,则向客户端返回验签失败的提示信息。如果验证签名成功,则调用业务方法,向服务端返回访问请求对应的业务数据。
本申请上述实施例提供的技术方案,服务端侧为需要验签的接口添加了签名注解,从而对于客户端需要访问的接口,基于该访问接口是否存在签名注解,确定是否执行验签操作,并基于验签结果,向客户端返回访问结果,由此对于需要验签的接口,服务端可以执行同一套验签代码,无需为每个接口添加验签代码,从而节省开发成本,降低服务端侧的负载。
在一实施例中,本申请利用AOP(在调用某类对象前去调用指定的功能模块)原理,在Spring MVC(一种开发框架)的Controller(控制器)接口增加用于验证签名的***。在调用具体业务方法前,执行用于验证签名的代码片段。
在一实施例中,当一个http(超文本传输协议)访问请求到来时,服务端在Dispatcher Servlet(集中访问点)调用doDispatch(主要用作职责调度工作,本身主要用于控制流程)方法拿到HandlerAdapter(处理适配器,调用具体的方法对用户发来的请求来进行处理)处理句柄,在SpringMVC调用HandlerAdapter的Handler(句柄)方法后,会利用HandlerMethodArgumentResolver(自定义参数解析器)把http参数解析出来。在调用具体业务方法前,通过AOP原理将访问请求拦截下来,获取调用方法的参数Http ServletRequest(封装了http请求头中信息的对象)和Proceeding Join Point(获取当前方法和参数)实例。从HttpServletRequest中可以拿到http请求头,从请求头中获取到客户端传上来的签名信息;从ProceedingJoinPoint中可以拿到调用方法的参数,参数类型以及参数注解。进而利用上述数据进行签名验证,如果验证通过则继续执行业务方法,如果不通过,则截断请求,将错误提示写入http应答中,逃过业务代码直接将错误提示返回给客户端。上述方案可以实例化一个签名工具类注入到springMVC的容器中,在需要验签的接口上添加签名注解,即可开启自动验签功能。该签名工具类可以采用基于Base64(一种编码方式,基于64个可打印字符来表示二进制数据)和HmacSHA1算法(从SHA1哈希函数构造的一种键控哈希算法)的签名方式,如果想要采用其他签名算法,仍可继承该签名工具类,只需重写其中的签名算法即可,由此具有很好的扩展性和可用性。
图3是本申请一实施例示出的签名工具类的架构示意图。如图3所示,包括Signature Component(基础签名组件类),用于生成签名和验证签名。如果需要实现新的签名算法,在子类中重写密钥和验签参数即可。Http Signature Component(http签名组件)是Signature Component的一个子类,具有解析http参数,解析Spring MVC Controller注解,参数组装的功能,实现了校验http请求的功能。Controller Interceptor(控制器***)是一个自定义的***,会在HandlerMethodArgumentResolver解析完原始http参数后,在调用具体业务方法前,利用Http Signature Component组件解析HttpServletRequest参数并校验签名是否正确。
图4是签名正确时,图3所示功能器件之间的调用示意图。http签名组件是Signature Component的子类,可以看作Signature Component的一个扩展和增强,具有Signature Component的所有功能。因此,如图4所示,(1)客户端发起访问请求;(2)***拦截到访问请求,传递相关参数到http签名组件;(3)http签名组件校验签名,签名正确,返回验签成功通知到***;(4)***调用业务控制器,执行业务方法;(5)***接收业务控制器返回的业务数据;(6)***将业务数据返回发起访问请求的客户端。
图5签名错误时,图3所示功能器件之间的调用示意图。如图5所示,(1)客户端发起访问请求,(2)***拦截到访问请求,传递相关参数到http签名组件;(3)http签名组件校验签名,验签错误,返回验签失败通知到***;(4)***发送签名错误、拒绝服务的提示信息到客户端。
在一实施例中,执行验签操作,如图6所示,可以包括以下步骤610-630。
在步骤610中,解析所述访问请求携带的签名信息,获得时间戳。
在一实施例中,客户端进行签名的步骤如下:(1)将所有调用业务方法的入参组装成json(JavaScript Object Notation,JS对象简谱)格式字符串,参数以参数名字母顺序排列,参数后拼接一个当前时间戳(毫秒)和随机字符串(nonce),如:{"a":1,"b":"数值","bb":2,"c":"213","z":"zzz"}1564469443000nonce;(2)对参数进行Base64加密得到第一密文;(3)使用提供的密钥,采用HmacSHA1算法对第一密文进行加密得到第二密文;(4)对第二密文进行Base64加密,得到签名字符串。
客户端发起http请求时,在请求头中携带签名信息:[clientId(应用标识)]:[时间戳]:sign:nonce。例如,client Id为km;时间戳为1564024954180;签名字符串为cX3b5/O3oIIVSkhxuXguHYgJW/8=;nonce=cafebaby。
服务端解析上述签名信息可以获得时间戳,签名信息中的时间戳可以是访问请求的发起时间。
在步骤620中,比较所述时间戳与当前时间点,根据比较结果判断所述访问请求是否过期。
其中,当前时间点可以是解析出时间戳时的时间点,如果时间戳与当前时间点的时间间隔大于预设值,可以认为该时间戳对应的访问请求已过期。如果访问请求已过期,可以认为验签失败,向客户端返回错误提示信息。由此,可以防止服务端对逾期请求继续响应,提高安全性。
在步骤630中,在所述访问请求没有过期时,校验所述签名信息包含的签名字符串,得到验签结果。
如果访问请求没有过期,则利用接口参数生成签名,与上述签名信息包含的签名字符串进行比对,校验两者是否一致。如果一致,可以认为验签成功,调用相应业务方法并向客户端返回业务数据。如果不一致,可以认为验签失败,向客户端返回错误提示信息。
在一实施例中,如图7所示,上述步骤630具体包括以下步骤631-633。
在步骤631中,根据解析所述签名信息获得的应用标识,查询所述应用标识对应的密钥。
其中,应用标识可以是为每个应用对应设置的编号,例如001。服务端可以提前存储每个应用标识对应的密钥。正常情况下,某个应用签名时所采用的密钥,与服务端存储的该应用标识对应的密钥相同。
在步骤632中,根据所述访问请求携带的接口参数,利用所述密钥对所述接口参数进行加密,得到加密字符串。
本申请实施例可以自动从访问请求中识别出接口参数,无需在验签代码中携带接口参数。因此可以用同一套验签工具(也可称为验签代码),无需为每个接口开发一套验签工具。服务端先将接口参数转成json格式字符串,并以参数名字母顺序排列,之后拼接时间戳、随机字符,得到参数组合,之后将参数组合进行Base64加密得到第一密文,将第一密文和密钥进行HmacSHA1加密,得到第二密文,对第二密文进行Base64加密得到加密字符串。
在步骤633中,将所述加密字符串与所述签名信息包含的签名字符串进行一致性比对,得到验签结果。
服务端比较加密字符串与签名信息中包含的签名字符串,如果相同,可以认为验签成功,根据接口参数调用相应的业务方法,并向客户端返回业务数据。如果不相同,可以认为验签失败,向客户端返回验签失败的提示信息。
通常,签名都与接口的具体参数相关,不同接口对应不同的接口参数,因此现有技术中的接口业务中都需要根据每个接口的具体参数开发一套验证签名的逻辑(即验签代码)。本申请实施例提供的验签逻辑是一套通用逻辑,可以自动从访问请求中识别出接口参数,并利用密钥对接口参数进行加密得到加密字符串,基于加密字符串与签名信息包含的签名字符串的比对结果,即可得到验签结果,此逻辑可以实现对多种接口的验签。
如果一些接口需要指定某些特殊参数不参与计算签名,可以在签名注解中指定忽略参数。在一实施例中,上述步骤632可以包括:获取所述签名注解中指示的忽略参数;从所述接口参数中过滤掉所述忽略参数,得到签名参数;将所述签名参数以及解析所述签名信息获得的时间戳和随机字符,通过所述密钥进行加密,得到所述加密字符串。
其中,忽略参数是指不参与签名计算的参数。根据SpringMVC的规则,Controller(控制器)的接口参数一般有RequestParam(请求参数)、PathVariable(路径变量)、ModelAttribute(模型属性)、RequestBody(请求体)。
其中RequestParam支持的参数类型有Integer(整数型),String(字符串型),Long(长整型),Boolean(布尔值型),LocalDate(日期型),LocalDateTime(日期时间型),YearMonth(年月型),Year(年型)等基础类型以及MultipartFile文件类型(客户端上传上来的二进制文件的类型,如图片、视频等)。在解析的时候需要过滤掉MultipartFile文件类型。
PathVariable注解参数不参与签名计算,可以忽略。
ModelAttribute注解参数是SpringMVC将query(查询)参数封装成的POJO(PlainOrdinary Java Object)类或者Map,将其直接转成json即可。
RequestBody注解的参数是一个POJO类,里面的所有字段都参与签名计算,所以可以将其全部转成json字段。
还有一些参数可能没有任何注解,一些基础类型如Integer,String,SpringMVC也会将识别出来并做映射,还有一些其他的类型,如用于返回参数校验结果的BindingResult(绑定结果)类型,不属于http入参,应该忽略。
因此从访问请求中解析出接口参数时,可以根据参数类型进行筛选过滤,去掉忽略参数,将剩余参数作为签名参数。签名参数是指参与签名计算的参数。之后从签名信息中解析出时间戳、随机字符、签名字符串和应用标识;将签名参数转成json格式并排序,之后与时间戳和随机字符进行拼接得到参数组合,之后将参数组合进行Base64加密得到第一密文,将第一密文和密钥进行HmacSHA1加密,得到第二密文,对第二密文进行Base64加密得到加密字符串。
之后,服务端可以将加密字符串与签名信息包含的签名字符串进行比较,如果一致,调用请求的业务方法,向客户端返回调用业务方法产生的业务数据。如果不一致,向客户端返回验签失败的提示信息。
图8是本申请一实施例提供的接口访问方法的完整流程示意图。该流程可以由服务端执行,如图8所示,该接口访问方法可以包括以下步骤。
步骤801:拦截客户端发送的访问请求,解析访问请求确定访问接口和业务方法。
步骤802:判断访问接口是否存在签名注解。如果存在签名注解,执行步骤804;如果不存在,执行步骤803。
步骤803:判断业务方法是否存在签名注解。如果存在执行步骤804,否则执行步骤810。
步骤804:解析请求头获得签名信息,解析签名信息获得时间戳、应用标识、签名字符串、随机字符等。
步骤805:根据时间戳判断是否逾期。如果逾期,执行步骤806;如果不逾期,执行步骤807。
步骤806:返回验签失败提示。
步骤807:根据应用标识查询获得密钥。
步骤808:接口参数转成json格式字符串,并以参数名字母顺序排列,之后拼接时间戳、随机字符,得到参数组合,之后将参数组合进行Base64加密得到第一密文,将第一密文和密钥进行HmacSHA1加密,得到第二密文,对第二密文进行Base64加密得到加密字符串。
步骤809:比较加密字符串与签名信息包含的签名字符串是否一致,如果一致,执行步骤810。如果不一致执行步骤806。
步骤810:调用相应的业务方法。
步骤811:向客户端返回调用业务方法产生的业务数据。
下述为本申请装置实施例,可以用于执行本申请上述服务端执行的接口访问方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请接口访问方法实施例。
图9是本申请一实施例示出的接口访问装置的框图。如图9所示,该接口访问装置可以包括:请求拦截模块910、接口映射模块920、注解判断模块930、验签判断模块940以及结果返回模块950。
请求拦截模块910,用于拦截客户端发送的访问请求;
接口映射模块920,用于根据所述访问请求携带的访问地址,映射得到所述访问地址对应的访问接口;
注解判断模块930,用于判断所述访问接口是否存在对应配置的签名注解;
验签判断模块940,用于根据所述访问接口是否存在签名注解,确定是否执行验签操作;
结果返回模块950,用于若执行所述验签操作,则基于所述验签操作的验签结果,向所述客户端返回所述访问请求对应的访问结果。
上述装置中各个模块的功能和作用的实现过程具体详见上述接口访问方法中对应步骤的实现过程,在此不再赘述。
在本申请所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (12)
1.一种接口访问方法,其特征在于,包括:
拦截客户端发送的访问请求;
根据所述访问请求携带的访问地址,映射得到所述访问地址对应的访问接口;
根据为不同接口预先配置的签名注解,判断所述访问接口是否存在对应配置的签名注解;
根据所述访问接口是否存在签名注解,确定是否执行验签操作;
若执行所述验签操作,则基于所述验签操作的验签结果,向所述客户端返回所述访问请求对应的访问结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述访问接口是否存在签名注解,确定是否执行验签操作,包括:
若所述访问接口存在签名注解,执行所述验签操作。
3.根据权利要求1所述的方法,其特征在于,所述根据所述访问接口是否存在签名注解,确定是否执行验签操作,包括:
若所述访问接口不存在签名注解,判断所述访问请求指示的业务方法是否存在签名注解,若存在,执行所述验签操作。
4.根据权利要求2或3所述的方法,其特征在于,所述执行所述验签操作,包括:
解析所述访问请求携带的签名信息,获得时间戳;
比较所述时间戳与当前时间点,根据比较结果判断所述访问请求是否过期;
在所述访问请求没有过期时,校验所述签名信息包含的签名字符串,得到验签结果。
5.根据权利要求4所述的方法,其特征在于,所述校验所述签名信息包含的签名字符串,得到验签结果,包括:
根据解析所述签名信息获得的应用标识,查询所述应用标识对应的密钥;
根据所述访问请求携带的接口参数,利用所述密钥对所述接口参数进行加密,得到加密字符串;
将所述加密字符串与所述签名信息包含的签名字符串进行一致性比对,得到验签结果。
6.根据权利要求5所述的方法,其特征在于,所述根据所述访问请求携带的接口参数,利用所述密钥对所述接口参数进行加密,得到加密字符串,包括:
获取所述签名注解中指示的忽略参数;
从所述接口参数中过滤掉所述忽略参数,得到签名参数;
将所述签名参数以及解析所述签名信息获得的时间戳和随机字符,通过所述密钥进行加密,得到所述加密字符串。
7.根据权利要求5所述的方法,其特征在于,所述基于所述验签操作的验签结果,向所述客户端返回所述访问请求对应的访问结果,包括:
若所述验签结果为所述加密字符串与所述签名信息包含的签名字符串一致,利用所述接口参数调用相应的业务方法;
向所述客户端返回调用所述业务方法产生的业务数据。
8.根据权利要求5所述的方法,其特征在于,所述基于所述验签操作的验签结果,向所述客户端返回所述访问请求对应的访问结果,包括:
若所述验签结果为所述加密字符串与所述签名信息包含的签名字符串不一致,向所述客户端返回验签失败的提示信息。
9.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述访问请求指示的业务方法不存在签名注解,确定不执行所述验签操作;
根据所述访问请求携带的接口参数调用相应的业务方法;向所述客户端返回调用所述业务方法产生的业务数据。
10.一种接口访问装置,其特征在于,包括:
请求拦截模块,用于拦截客户端发送的访问请求;
接口映射模块,用于根据所述访问请求携带的访问地址,映射得到所述访问地址对应的访问接口;
注解判断模块,用于判断所述访问接口是否存在对应配置的签名注解;
验签判断模块,用于根据所述访问接口是否存在签名注解,确定是否执行验签操作;
结果返回模块,用于若执行所述验签操作时,基于所述验签操作的验签结果,向所述客户端返回所述访问请求对应的访问结果。
11.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-9任意一项所述的接口访问方法。
12.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成权利要求1-9任意一项所述的接口访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010057153.5A CN111314306A (zh) | 2020-01-17 | 2020-01-17 | 接口访问方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010057153.5A CN111314306A (zh) | 2020-01-17 | 2020-01-17 | 接口访问方法及装置、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111314306A true CN111314306A (zh) | 2020-06-19 |
Family
ID=71148280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010057153.5A Pending CN111314306A (zh) | 2020-01-17 | 2020-01-17 | 接口访问方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111314306A (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112272190A (zh) * | 2020-11-10 | 2021-01-26 | 网易(杭州)网络有限公司 | 一种数据访问方法和装置 |
CN112468478A (zh) * | 2020-11-23 | 2021-03-09 | 杭州贝嘟科技有限公司 | 攻击拦截方法、装置、计算机设备和存储介质 |
CN112631695A (zh) * | 2020-12-22 | 2021-04-09 | 北京达佳互联信息技术有限公司 | 一种数据校验方法、装置、电子设备及存储介质 |
CN112965739A (zh) * | 2021-02-08 | 2021-06-15 | 中国工商银行股份有限公司 | 前端http请求处理方法、装置及*** |
CN112966303A (zh) * | 2021-03-10 | 2021-06-15 | 中国民航信息网络股份有限公司 | 数据的加解密方法及装置、电子设备、计算机存储介质 |
CN113285951A (zh) * | 2021-05-24 | 2021-08-20 | 挂号网(杭州)科技有限公司 | 请求转发方法、装置、设备及存储介质 |
CN113489702A (zh) * | 2021-06-29 | 2021-10-08 | 网易(杭州)网络有限公司 | 接口限流方法、装置和电子设备 |
CN113515767A (zh) * | 2021-08-02 | 2021-10-19 | 杭州粉象家科技有限公司 | 一种基于混合模式移动应用的接口请求管理方法及装置 |
CN113542527A (zh) * | 2020-11-26 | 2021-10-22 | 腾讯科技(深圳)有限公司 | 一种人脸图像传输方法、装置、电子设备及存储介质 |
CN113609366A (zh) * | 2021-08-04 | 2021-11-05 | 深圳市元征科技股份有限公司 | 数据获取方法、装置、终端设备及可读存储介质 |
CN113706299A (zh) * | 2021-09-10 | 2021-11-26 | 京东科技控股股份有限公司 | 数据处理的方法、装置、电子设备及介质 |
CN113722733A (zh) * | 2021-08-27 | 2021-11-30 | 北京航天云路有限公司 | 一种基于Java注解实现的数据访问权限控制方法 |
CN113742752A (zh) * | 2021-09-13 | 2021-12-03 | 杭州安恒信息技术股份有限公司 | 接口对接的统一认证方法、装置、计算机设备和存储介质 |
CN113779638A (zh) * | 2021-11-15 | 2021-12-10 | 浪潮软件股份有限公司 | 一种动态代理模式下实现接口调用方鉴权的方法及装置 |
CN114257583A (zh) * | 2021-12-22 | 2022-03-29 | 贵州东彩供应链科技有限公司 | 一种解决jwt授权的安全下载方法 |
CN114500301A (zh) * | 2022-01-13 | 2022-05-13 | 珠海紫讯信息科技有限公司 | 一种基于业务场景的服务降级方法及*** |
CN114637554A (zh) * | 2022-03-18 | 2022-06-17 | 中国建设银行股份有限公司 | 接口调用方法、装置、设备及存储介质 |
CN116226879A (zh) * | 2022-12-26 | 2023-06-06 | 易方达基金管理有限公司 | 服务接口访问控制方法、装置、计算机设备和存储介质 |
CN116629864A (zh) * | 2023-04-27 | 2023-08-22 | 北京熠智科技有限公司 | 一种隐私计算场景下api服务收费方法、平台及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101562606A (zh) * | 2008-04-17 | 2009-10-21 | 鸿富锦精密工业(深圳)有限公司 | 开放式数据调用***及方法 |
CN104935568A (zh) * | 2015-04-20 | 2015-09-23 | 成都康赛信息技术有限公司 | 一种面向云平台接口鉴权签名方法 |
CN106656953A (zh) * | 2016-09-23 | 2017-05-10 | 焦点科技股份有限公司 | 一种基于互联网的***间安全调用接口实现方法 |
CN108415834A (zh) * | 2018-02-12 | 2018-08-17 | 平安科技(深圳)有限公司 | 注解后端校验方法、装置、计算机设备及存储介质 |
CN109858257A (zh) * | 2018-12-27 | 2019-06-07 | 北京互金新融科技有限公司 | 访问控制方法及装置 |
CN110147261A (zh) * | 2019-04-15 | 2019-08-20 | 平安普惠企业管理有限公司 | 基于调用接口的参数校验方法及相关设备 |
CN110381135A (zh) * | 2019-07-18 | 2019-10-25 | 北京奇艺世纪科技有限公司 | 接口创建方法、服务请求方法、装置、计算机设备和介质 |
CN110489207A (zh) * | 2019-07-11 | 2019-11-22 | 平安科技(深圳)有限公司 | 参数验证方法、装置及计算机可读存储介质 |
CN110633160A (zh) * | 2019-08-22 | 2019-12-31 | 浙江大搜车软件技术有限公司 | 接口调用方法、装置、计算机设备和存储介质 |
-
2020
- 2020-01-17 CN CN202010057153.5A patent/CN111314306A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101562606A (zh) * | 2008-04-17 | 2009-10-21 | 鸿富锦精密工业(深圳)有限公司 | 开放式数据调用***及方法 |
CN104935568A (zh) * | 2015-04-20 | 2015-09-23 | 成都康赛信息技术有限公司 | 一种面向云平台接口鉴权签名方法 |
CN106656953A (zh) * | 2016-09-23 | 2017-05-10 | 焦点科技股份有限公司 | 一种基于互联网的***间安全调用接口实现方法 |
CN108415834A (zh) * | 2018-02-12 | 2018-08-17 | 平安科技(深圳)有限公司 | 注解后端校验方法、装置、计算机设备及存储介质 |
CN109858257A (zh) * | 2018-12-27 | 2019-06-07 | 北京互金新融科技有限公司 | 访问控制方法及装置 |
CN110147261A (zh) * | 2019-04-15 | 2019-08-20 | 平安普惠企业管理有限公司 | 基于调用接口的参数校验方法及相关设备 |
CN110489207A (zh) * | 2019-07-11 | 2019-11-22 | 平安科技(深圳)有限公司 | 参数验证方法、装置及计算机可读存储介质 |
CN110381135A (zh) * | 2019-07-18 | 2019-10-25 | 北京奇艺世纪科技有限公司 | 接口创建方法、服务请求方法、装置、计算机设备和介质 |
CN110633160A (zh) * | 2019-08-22 | 2019-12-31 | 浙江大搜车软件技术有限公司 | 接口调用方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
虞益诚: "《电子商务概论 第2版》", 31 January 2013, 北京:中国铁道出版社, pages: 105 * |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112272190A (zh) * | 2020-11-10 | 2021-01-26 | 网易(杭州)网络有限公司 | 一种数据访问方法和装置 |
CN112468478A (zh) * | 2020-11-23 | 2021-03-09 | 杭州贝嘟科技有限公司 | 攻击拦截方法、装置、计算机设备和存储介质 |
CN113542527B (zh) * | 2020-11-26 | 2023-08-18 | 腾讯科技(深圳)有限公司 | 一种人脸图像传输方法、装置、电子设备及存储介质 |
CN113542527A (zh) * | 2020-11-26 | 2021-10-22 | 腾讯科技(深圳)有限公司 | 一种人脸图像传输方法、装置、电子设备及存储介质 |
CN112631695A (zh) * | 2020-12-22 | 2021-04-09 | 北京达佳互联信息技术有限公司 | 一种数据校验方法、装置、电子设备及存储介质 |
CN112631695B (zh) * | 2020-12-22 | 2024-06-11 | 北京达佳互联信息技术有限公司 | 一种数据校验方法、装置、电子设备及存储介质 |
CN112965739A (zh) * | 2021-02-08 | 2021-06-15 | 中国工商银行股份有限公司 | 前端http请求处理方法、装置及*** |
CN112965739B (zh) * | 2021-02-08 | 2024-02-09 | 中国工商银行股份有限公司 | 前端http请求处理方法、装置及*** |
CN112966303A (zh) * | 2021-03-10 | 2021-06-15 | 中国民航信息网络股份有限公司 | 数据的加解密方法及装置、电子设备、计算机存储介质 |
CN113285951A (zh) * | 2021-05-24 | 2021-08-20 | 挂号网(杭州)科技有限公司 | 请求转发方法、装置、设备及存储介质 |
CN113489702A (zh) * | 2021-06-29 | 2021-10-08 | 网易(杭州)网络有限公司 | 接口限流方法、装置和电子设备 |
CN113515767B (zh) * | 2021-08-02 | 2024-01-23 | 杭州粉象家科技有限公司 | 一种基于混合模式移动应用的接口请求管理方法及装置 |
CN113515767A (zh) * | 2021-08-02 | 2021-10-19 | 杭州粉象家科技有限公司 | 一种基于混合模式移动应用的接口请求管理方法及装置 |
CN113609366A (zh) * | 2021-08-04 | 2021-11-05 | 深圳市元征科技股份有限公司 | 数据获取方法、装置、终端设备及可读存储介质 |
CN113722733A (zh) * | 2021-08-27 | 2021-11-30 | 北京航天云路有限公司 | 一种基于Java注解实现的数据访问权限控制方法 |
CN113706299A (zh) * | 2021-09-10 | 2021-11-26 | 京东科技控股股份有限公司 | 数据处理的方法、装置、电子设备及介质 |
CN113742752A (zh) * | 2021-09-13 | 2021-12-03 | 杭州安恒信息技术股份有限公司 | 接口对接的统一认证方法、装置、计算机设备和存储介质 |
CN113742752B (zh) * | 2021-09-13 | 2024-03-26 | 杭州安恒信息技术股份有限公司 | 接口对接的统一认证方法、装置、计算机设备和存储介质 |
CN113779638A (zh) * | 2021-11-15 | 2021-12-10 | 浪潮软件股份有限公司 | 一种动态代理模式下实现接口调用方鉴权的方法及装置 |
CN114257583A (zh) * | 2021-12-22 | 2022-03-29 | 贵州东彩供应链科技有限公司 | 一种解决jwt授权的安全下载方法 |
CN114500301A (zh) * | 2022-01-13 | 2022-05-13 | 珠海紫讯信息科技有限公司 | 一种基于业务场景的服务降级方法及*** |
CN114637554A (zh) * | 2022-03-18 | 2022-06-17 | 中国建设银行股份有限公司 | 接口调用方法、装置、设备及存储介质 |
CN116226879A (zh) * | 2022-12-26 | 2023-06-06 | 易方达基金管理有限公司 | 服务接口访问控制方法、装置、计算机设备和存储介质 |
CN116629864A (zh) * | 2023-04-27 | 2023-08-22 | 北京熠智科技有限公司 | 一种隐私计算场景下api服务收费方法、平台及存储介质 |
CN116629864B (zh) * | 2023-04-27 | 2024-04-16 | 北京熠智科技有限公司 | 一种隐私计算场景下api服务收费方法、平台及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111314306A (zh) | 接口访问方法及装置、电子设备、存储介质 | |
CN110365670B (zh) | 黑名单共享方法、装置、计算机设备和存储介质 | |
CN109474578B (zh) | 报文消息校验方法、装置、计算机设备和存储介质 | |
EP3596642B1 (en) | Privacy-preserving identity verification | |
CN109784922B (zh) | 电子合同签署方法、装置、计算机设备和存储介质 | |
WO2020253061A1 (zh) | 页面生成方法、装置、计算机设备和存储介质 | |
KR20200093007A (ko) | 모델 훈련 시스템 및 방법과, 저장 매체 | |
CN113779444B (zh) | 接口开发方法、零代码引擎和零代码数据接口开发*** | |
US9632765B1 (en) | Customized application package with context specific token | |
CN102171652A (zh) | 为电子装置提供可信软件的方法 | |
CN111290742A (zh) | 参数验证方法、装置、电子设备及可读存储介质 | |
CN110224855B (zh) | 微服务实例的注册方法、装置、计算机设备及存储介质 | |
WO2019019344A1 (zh) | 网页数据爬取方法、装置、用户终端及可读存储介质 | |
CN108897728B (zh) | 短信拼接处理方法、装置、计算机设备和存储介质 | |
CN112328486A (zh) | 接口自动化测试方法、装置、计算机设备及存储介质 | |
CN112528201A (zh) | 调用第三方平台的方法、装置、计算机设备和存储介质 | |
CN111817859A (zh) | 基于零知识证明的数据共享方法、装置、设备及存储介质 | |
CN115130075A (zh) | 一种数字签章方法、装置、电子设备及存储介质 | |
CN112100689B (zh) | 一种可信数据处理方法、装置及设备 | |
CN112685077A (zh) | 数据修改方法、***、计算机设备及计算机可读存储介质 | |
CN114021175B (zh) | 用户画像的配置方法、装置、计算机设备及介质 | |
CN111143399B (zh) | 数据处理方法、装置、存储介质和计算机设备 | |
CN115129275A (zh) | 一种数字文件打印方法、装置、电子设备及存储介质 | |
CN114979109A (zh) | 行为轨迹检测方法、装置、计算机设备和存储介质 | |
CN113407213B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200619 |
|
RJ01 | Rejection of invention patent application after publication |