CN109344642B - 接口规则校验方法、装置、计算机设备及存储介质 - Google Patents

接口规则校验方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN109344642B
CN109344642B CN201811012201.8A CN201811012201A CN109344642B CN 109344642 B CN109344642 B CN 109344642B CN 201811012201 A CN201811012201 A CN 201811012201A CN 109344642 B CN109344642 B CN 109344642B
Authority
CN
China
Prior art keywords
rule
interface
parameter
check
checking
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
CN201811012201.8A
Other languages
English (en)
Other versions
CN109344642A (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201811012201.8A priority Critical patent/CN109344642B/zh
Publication of CN109344642A publication Critical patent/CN109344642A/zh
Application granted granted Critical
Publication of CN109344642B publication Critical patent/CN109344642B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种接口规则校验方法、装置、计算机设备及存储介质。该方法包括:获取访问请求,访问请求携带入参和访问地址,访问地址对应一访问标识;根据访问标识获取与访问标识对应的模仿对象,并根据模仿对象获取接口信息;从接口信息中获取接口ID,基于接口ID从数据库中获取与接口ID对应的校验规则集;采用校验规则集对入参进行规则校验,获取入参校验结果,将入参校验结果发送给客户端;获取客户端基于入参校验结果反馈的操作请求,若操作请求为继续处理的操作请求,则执行基于入参和与访问标识相对应的业务逻辑,获取与入参相对应的出参;采用校验规则集对出参进行规则校验,获取出参校验结果。实现校验规则标准化,减少代码冗余量。

Description

接口规则校验方法、装置、计算机设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种接口规则校验方法、装置、计算机设备及存储介质。
背景技术
作为服务方提供的接口,必要的字段校验必不可少,现有的开发模式中,不同的用户负责不同的接口,对必要字段进行规则校验时校验风格各异,会造成不同程度的代码冗余。另外,接口被调用时,生成的日志文件会存在一些敏感数据(如入参中包含有客户的姓名、手机号码和身份证号码等),将这些敏感信息存储到日志中,会使得客户信息在日志中存储不安全。
发明内容
本发明实施例提供一种接口规则校验方法、装置、计算机设备及存储介质,以解决当前在接口校验过程中存在校验风格各异和代码冗余的问题。
一种接口规则校验方法,包括:
获取访问请求,所述访问请求携带入参和访问地址,所述访问地址对应一访问标识;
根据所述访问标识获取与所述访问标识对应的模仿对象,并根据所述模仿对象获取接口信息;
从所述接口信息中获取接口ID,基于所述接口ID从数据库中获取与所述接口ID对应的校验规则集;
采用所述校验规则集对所述入参进行规则校验,获取入参校验结果,将所述入参校验结果发送给客户端;
获取客户端基于所述入参校验结果反馈的操作请求,若所述操作请求为继续处理的操作请求,则执行基于所述入参和与所述访问标识相对应的业务逻辑,获取与所述入参相对应的出参;
采用所述校验规则集对所述出参进行规则校验,获取出参校验结果,并将所述出参和所述出参校验结果反馈给所述访问请求对应的客户端。
一种接口规则校验装置,包括:
访问请求获取模块,用于获取访问请求,所述访问请求携带入参和访问地址,所述访问地址对应一访问标识;
模仿对象处理模块,用于根据所述访问标识获取与所述访问标识对应的模仿对象,并根据所述模仿对象获取接口信息;
校验规则集获取模块,用于从所述接口信息中获取接口ID,基于所述接口ID从数据库中获取与所述接口ID对应的校验规则集;
入参规则校验模块,用于采用所述校验规则集对所述入参进行规则校验,获取入参校验结果,将所述入参校验结果发送给客户端;
出参获取模块,用于获取客户端基于所述入参校验结果反馈的操作请求,若所述操作请求为继续处理的操作请求,则执行基于所述入参和与所述访问标识相对应的业务逻辑,获取与所述入参相对应的出参;
出参规则校验模块,用于采用所述校验规则集对所述出参进行规则校验,获取出参校验结果,并将所述出参和所述出参校验结果反馈给所述访问请求对应的客户端。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述接口规则校验方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述接口规则校验方法的步骤。
上述接口规则校验方法、装置、计算机设备及存储介质,通过访问标识获取与访问标识对应的模仿对象,使得后续进行规则校验时,在模仿对象中执行规则校验的步骤,可以达到无痕检测的目的。模仿对象中包括接口信息,通过接口信息中的接口ID,从数据库中获取与接口ID对应的校验规则集,实现校验规则标准化,无需在编写不同的业务程序时,相应编写一套对应的规则校验集的功能,使得代码编写轻量化,减少代码冗余量,节省代码编写时间。使用校验规则集对入参和出参分别进行规则校验,可以检测入参和出参是否符合业务要求,保证了入参和出参执行业务逻辑的准确性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中接口规则校验方法的一应用场景图;
图2是本发明一实施例中接口规则校验方法的一流程图;
图3是图2中步骤S20的一具体流程图;
图4是图2中步骤S40的一具体流程图;
图5是图4中步骤S60的一具体流程图;
图6是本发明一实施例中接口规则校验方法的另一流程图;
图7本发明一实施例中接口规则校验装置的一示意图;
图8是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提供的接口规则校验方法,可应用在如图1的应用环境中,其中,计算机设备通过网络与服务器进行通信。计算机设备可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种接口规则校验方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:
S10:获取访问请求,访问请求携带入参和访问地址,访问地址对应一访问标识。
具体地,该访问请求是指用户在调用接口时,发送给服务器的用于调用接口的访问请求。该访问请求携带有用户需要用到的入参和访问地址。本实施例中的访问地址为URL地址。其中,该访问地址对应一访问标识,访问标识指用于表示访问请求的标识。服务器通过访问标识可以获取与访问标识对应的数据。进一步地,本实施例中的入参包括但不限于客户的姓名、手机号码和身份证号码等信息。
S20:根据访问标识获取与访问标识对应的模仿对象,并根据模仿对象获取接口信息。
需要说明的是,在服务器获取访问请求后,需要对访问请求中携带的入参进行规则校验,为了不影响访问请求的执行过程,本实施例中的对入参进行规则校验是在与访问标识对应的模仿对象中进行的。其中,模仿对象指对访问标识对应的类的对象创建的副本,即本实施例中的模仿对象为代理对象。创建模仿对象可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能
具体地,在获取到访问请求后,服务器中配置的CGLIB会对该访问请求进行拦截,在拦截成功后,CGLIB会基于访问标识查找内存中是否存储有与访问请求中的访问标识对应的模仿对象,若内存中存储有与访问标识对应的模仿对象,则在模仿对象中根据访问请求携带的访问地址(URL),从内存中获取对应的接口信息。该接口信息包括接口ID、接口名称、接口提供方、接口调用方、接口地址和接口是否启用等信息。可以理解地,该模仿对象中包含有访问标识,便于基于访问地址中的访问标识查找到与该访问标识对应的模仿对象。其中,CGLIB(Code Generation Library)是一个强大的高性能的代码生成包,广泛应用于AOP(如Spring AOP和dynaop)框架中,为AOP框架提供方法的interception(拦截)操作。
服务器根据访问标识获取与访问标识对应的模仿对象,使得后续对入参和出参进行规则校验时,在模仿对象中进行,不影响访问请求的正常访问,以达到无痕检测的目的。
S30:从接口信息中获取接口ID,基于接口ID从数据库中获取与接口ID对应的校验规则集。
其中,接口信息包括接口ID、接口名称、接口提供方、接口调用方、接口地址和接口是否启用等信息。校验规则集指对必要字段进行规则校验的规则的结合。可以理解地,校验规则集包括至少一个校验规则。本实施例中的必要字段指入参和入参对应的出参。
本实施例中的校验规则集包括通用校验规则集和自定义校验规则集。其中,通用校验规则集包括三种通用校验规则,具体为数据类型校验规则、数据长度校验规则和非空校验规则。数据类型校验规则指对入参或者出参进行数据类型判断的规则,数据类型校验规则中的数据类型包括数字、字母和汉字中的一种或者多种组合。数据长度校验规则指对入参或者出参的长度进行判断的规则。非空校验规则指对入参或者出参进行是否为空的规则。当通用校验规则集不能满足业务需求时,用户可以根据实际需要编写自定义校验规则集。可以理解地,该自定义校验规则集的编写可以通过正则表达式编写,该自定义校验规则集可以包括至少一个自定义规则。
具体地,服务器在获取接口信息后,从接口信息中获取接口ID。然后,根据接口ID,从存储校验规则集的数据库中获取与接口ID对应的校验规则集。本实施例中的校验规则集存储在数据库中的接口字段关系表中,服务器根据获取到的接口ID查询该接口字段关系表,获取与接口ID相对应的校验规则集。该接口字段关系表指用于存储接口ID和对应的规则校验集的表。一个接口ID对应一个校验规则集,每个校验规则集中的校验规则设置有校验优先级。该校验优先级指校验规则对必要字段进行规则校验的先后顺序。
将校验规则集存储在数据库中,用户可以根据业务需求在数据库中自定义编写业务需求对应的校验规则集。本实施例中,使用接口ID从数据库中获取与接口ID对应的校验规则集,使得校验规则集中校验规则标准化,开发人员不需要在开发不同的业务程序时,都要编写一套对应的规则校验集,解决了校验风格各异的问题,同时可以使代码编写轻量化。
S40:采用校验规则集对入参进行规则校验,获取入参校验结果,将入参校验结果发送给客户端。
其中,入参校验结果指采用校验规则集对入参进行规则校验的结果。具体地,在获取校验规则集后,若校验规则集只包括通用校验规则集而不包括自定义校验规则集,则采用通用校验规则集对入参进行规则校验;若校验规则集中不仅包括通用校验规则集还包括自定义校验规则集,则在通用校验规则集完成对入参的校验之后继续采用自定义校验规则集对入参进行规则校验。进一步地,自定义校验规则集指若通用校验规则集不能满足业务需求时,用户可以根据实际需要编写正则表达式,制定自定义校验规则集。本实施例中,所编写的自定义校验规则集携带有对应的规则ID,可以理解地,自定义校验规则集携带的规则ID与接口ID一一对应。在自定义校验规则集编写完毕后,将该自定义校验规则集对应的的规则ID,配置至数据库中存储的接口字段关系表中的校验规则集中,方便统一管理同一个规则ID对应的通用校验规则集和自定义校验规则集。
例如:接口ID对应的校验规则集包括通用校验规则集和自定义校验规则集。其中,通用校验规则集包括非空校验规则、数据长度校验规则和数据类型校验校验规则三种通用校验规则。业务需求中需要校验身份证号的真伪,使用通用校验规则集不能满足业务需求,则用户就可以根据需求编写正则表达式,将身份证号分为三个部分,第一个部分为六位数字地址码,第二个部分八位数字出生日期码,第三个部分为三位数字顺序码和一位数字校验码。第一个部分的正则表达式为六位数字地址码的编写规则,该六位地址码可以参考〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定进行设置。
若入参满足校验规则集中所有校验规则的要求,则入参校验结果为校验通过;若入参不满足校验规则中的任何一个校验规则的要求,则入参校验结果为校验不通过。在获取入参校验结果后,服务器会将入参校验结果发送给发送访问请求的客户端,便于开发人员通过客户端获知入参校验结果,并根据校验结果作出对应的选择。
S50:获取客户端基于入参校验结果反馈的操作请求,若操作请求为继续处理的操作请求,则执行基于入参和与访问标识相对应的业务逻辑,获取与入参相对应的出参。
具体地,在服务器将入参校验结果发送给客户端后,开发人员会基于客户端显示的入参校验结果选择是否继续处理对应的业务逻辑。若开发人员选择继续处理对应的按钮,客户端会将继续处理的操作请求发送给服务器,服务器在接收到继续处理的操作请求后,会基于访问标识从该访问标识对应的类中获取该类中的业务逻辑,在获取业务逻辑后,入参执行该业务逻辑,获取与入参相对应的出参。
进一步地,为了达到无痕检测的目的,在获取客户端基于入参校验结果反馈的操作请求后,若操作请求为继续处理的操作请求,则需要通过Java反射机制调用与访问标识对应的类中的业务逻辑,使入参执行业务逻辑,获取入参相对应的出参,然后在模仿对象中根据接口ID对应的规则集对出参进行规则校验。其中,Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。
S60:采用校验规则集对出参进行规则校验,获取出参校验结果,并将出参和出参校验结果反馈给访问请求对应的客户端。
具体地,在获取入参对应的出参后,采用接口ID对应的校验规则集对获取的出参进行规则校验,若出参满足校验规则集中所有校验规则的要求,则出参校验结果为校验通过;若出参不满足校验规则集中的任何一个校验规则的要求,则出参校验结果为校验不通过。同样地,若校验规则集中只包括通用校验规则集而不包括自定义校验规则集,则采用通用校验规则集对出参进行规则校验;若校验规则集中不仅包括通用校验规则集还包括自定义校验规则集,则在通用校验规则集完成对出参的校验之后继续采用自定义校验规则集对出参进行规则校验。若出参满足校验规则集中所有校验规则的要求,则出参校验结果为校验通过;若出参不满足校验规则集中的任何一个校验规则的要求,则出参校验结果为校验不通过。在获取出参校验结果后,服务器将出参和出参对应的出参校验结果通过访问请求反馈给对应的客户端,使得客户端的开发人员可以及时地获取出参,并且了解该出参对应的出参校验结果,方便根据出参校验结果判断出参是否满足校验规则集中设置的校验规则。使用通用校验规则集和自定义校验规则集,可以使得校验结果更加准确,更加符合要求。
步骤S10-步骤S60,通过访问标识获取与访问标识对应的模仿对象,使得后续进行规则校验时,在模仿对象中执行规则校验的步骤,可以达到无痕检测的目的。模仿对象中包括接口信息,通过接口信息中的接口ID,从数据库中获取与接口ID对应的校验规则集,实现校验规则标准化,无需在编写不同的业务程序时,相应编写一套对应的规则校验集的功能,使得代码编写轻量化,减少代码冗余量,节省代码编写时间。使用校验规则集对入参和出参分别进行规则校验,可以检测入参和出参是否符合业务要求,保证了入参和出参执行业务逻辑的准确性。
在一实施例中,如图3所示,步骤S20,根据访问标识获取与访问标识对应的模仿对象,具体包括如下步骤:
S21:根据访问标识获取与访问标识对应的类,类包括类标识。
其中,类标识指用于唯一识别类的标识。该类标识可以是类关键字或者类名称。具体地,服务器在获取访问请求中的访问地址后,CGLIB中的interception(拦截)会对该访问地址进行拦截操作,然后通过访问地址中携带的访问标识获取与该访问标识对应的类。进一步地,每个类都有一个对应的类标识,该类标识用于唯一标记其对应的类。
S22:判断是否存在与类标识相对应的模仿对象,若存在与类标识相对应的模仿对象,则获取模仿对象。
具体地,在CGLIB中的interception(拦截)对访问地址进行拦截操作后,服务器根据类标识判断类是否存在对应的模仿对象,如存在有与该类标识对应的模仿对象,则获取该模仿对象。
进一步地,若不存在与类标识相对应的模仿对象,则提示开发人员创建与类标识相对应的模仿对象,在获取开发人员创建的模仿对象之后,基于该模仿对象执行后续的规则校验的步骤。并且,在获取开发人员创建的模仿对象之后,将该模仿对象与类标识关联存储在内存中,以便后续基于该类标识查找到相对应的模仿对象。
步骤S21-步骤S22,通过访问标识获取与访问标识对应的类,通过类标识判断类是否存在对应的模仿对象,若存在模仿对象,则获取该模仿对象,方便后续在模仿对象上使用规则校验集对入参和出参进行规则校验,不影响访问请求的正常执行,达到无痕检测的目的。
在一实施例中,由于校验规则集中包括的校验规则不止一个,每个校验规则的重要性也不一致,因此,校验规则集设置有校验优先级。如图4所示,步骤S40,采用校验规则集对入参进行规则校验,获取入参校验结果,具体包括如下步骤:
S41:按照校验优先级从高到低的顺序,依序采用每一校验优先级对应的校验规则对入参进行规则校验,获取入参对应的入参校验结果。
具体地,获取校验规则集后,若规则校验集中仅包括通用校验规则集,则按照通用校验规则集对应的校验优先级顺序,从高到低,依序采用每一校验优先级对应的校验规则对入参进行规则校验。若规则校验集中包括通用校验规则集和自定义校验规则集,则先按照通用校验规则集中设置的校验优先级的高低顺序,依序使用通用校验规则集中的校验规则对入参进行规则校验,直至校验完成,然后再使用自定义校验规则集对入参进行规则校验。进一步地,在校验过程中,若入参不满足校验优先级高的校验规则时,则后续就不需要使用校验优先级低的校验规则对入参进行规则校验,可以减少规则校验的时间。
例如,从访问请求中获取到的入参包括a、b和c,其中,入参a为客户姓名,入参b为身份证号,入参c为手机号。校验规则集中仅包括通用校验规则集,通用校验规则集包括非空校验规则、数据长度校验规则和数据类型校验校验规则。三者的校验优先级设置为非空校验规则的校验优先级最高,数据长度校验规则的校验优先级次之,数据类型校验规则的校验优先级最低。按照校验优先级从高到低的顺序,先使用非空校验规则依次判断入参a、b和c是否为空;若不为空,则再使用数据长度校验规则对入参a、b和c进行规则校验。其中,入参a的数据长度校验规则设置为≤5,入参b的数据长度校验规则设置为18位,入参c的数据长度校验规则设置的规则设置为11位。若入参a、b和c满足对应的数据长度校验规则,则使用数据类型校验规则对入参a、b和c进行规则校验。其中,入参a的数据类型规则设置为字母或者汉字,入参b和入参c的数据类型规则设置为数字。当入参a、b和c都满足通用校验规则集中设置的所有校验规则时,则表示入参校验通过。当入参a、b和c中有一个入参不满足通用校验规则集中设置的任何一个校验规则时,则表示校验不通过。服务器在获取入参校验结果后,将该入参校验结果发送给客户端,以方便发送访问请求的用户根据入参校验结果选择是否执行对应的业务逻辑。
S42:将入参和入参校验结果存储到预先创建的接口日志表中。
具体地,接口日志表指用于存储日志中敏感数据的表。本实施例中的敏感数据指不能泄露的数据,如入参中的客户姓名、身份证号和手机号等。在获取入参和入参校验结果后,服务器会根据接口ID找到与接口ID对应的接口日志表,将入参和入参校验结果存储在对应的接口日志表中,提高数据存储的安全性,达到接口运行时,入参和出参可以持久化保存的目的。
步骤S41-步骤S42,按照校验优先级从高到低的顺序,依序采用每一校验优先级对应的校验规则对入参进行规则校验,若入参不满足校验优先级高的校验规则时,则后续就不需要使用校验优先级低的校验规则对入参进行规则校验,有效减少了规则校验的时间。在使用校验规则对入参进行规则校验后,获取入参对应的入参校验结果,然后将入参和入参校验结果存储到预先创建的接口日志表中,提高数据存储的安全性,保证敏感数据不被泄露。
在一实施例中,步骤S50中,基于入参和与访问标识相对应的业务逻辑,获取与入参相对应的出参,具体包括如下步骤:通过Java反射机制调用与访问标识对应的类中的业务逻辑,使入参执行业务逻辑,获取入参相对应的出参。
具体地,由于模仿对象中没有存储类的私有方法(即类中的业务逻辑),因此,在获取客户端基于入参校验结果反馈的操作请求后,若操作请求为继续处理的操作请求,则需要通过Java反射机制调用与访问标识对应的类中的业务逻辑,使入参执行业务逻辑,获取入参相对应的出参,然后在模仿对象中根据接口ID对应的规则集对出参进行规则校验。
在一实施例中,如图5所示,步骤S60,采用校验规则集对出参进行规则校验,获取出参校验结果,具体包括如下步骤:
S61:按照校验优先级从高到低的顺序,依序采用每一校验优先级对应的校验规则对出参进行规则校验,获取出参对应的出参校验结果。
同样地,在使用校验规则集对出参进行规则校验时,若规则校验集中仅包括通用校验规则集,则按照通用校验规则集对应的校验优先级顺序,从高到低,依序采用每一校验优先级对应的校验规则对出参进行规则校验。若规则校验集中包括通用校验规则集和自定义校验规则集,则先按照通用校验规则集中设置的校验优先级的高低顺序,依序使用通用校验规则集中的校验规则对出参进行规则校验,直至校验完成,然后再使用自定义校验规则集对出参进行规则校验。进一步地,在校验过程中,若出参不满足校验优先级高的校验规则时,则后续就不需要使用校验优先级低的校验规则对出参进行规则校验,可以减少规则校验的时间。
S62:将出参和出参校验结果存储到预先创建的接口日志表中。
同样地,在获取出参和出参校验结果后,为了保证敏感数据不被泄露,服务器会根据接口ID找到与接口ID对应的接口日志表,将出参和出参校验结果存储在对应的接口日志表中。需要说明的是,同一接口ID的入参和出参对应存储在接口日志表中。该接口日志表中包括至少一个接口日志信息,该接口日志信息指接口产生的日志信息。接口日志表中仅存储含有敏感数据的接口日志信息,包括入口ID、入参、入参校验结果、出参、出参校验结果和其他接口信息,提高数据存储的安全性,使得接口运行时,入参和出参可以持久化保存的目的。
步骤S61-步骤S62,按照校验优先级从高到低的顺序,依序采用每一校验优先级对应的校验规则对出参进行规则校验,获取出参校验结果,然后将出参和出参校验结果存储到预先创建的接口日志表中,提高数据存储的安全性,保证敏感数据不被泄露。
在一实施例中,如图6所示,该接口规则校验方法方法还包括如下步骤:
S71:基于访问请求获取访问请求对应的日志文件。
在完成对入参和出参的规则校验后,服务器会基于访问请求,获取该访问请求对应的日志文件。本实施例中的日志文件会记录访问请求的访问过程,包括但不限于接口ID、接口名称、接口调用方、接口提供方、入参、入参的规则校验过程、入参校验结果、出参、出参的规则校验过程和出参校验结果等数据。
S72:对日志文件进行敏感数据判断,获取日志文件中的敏感数据。
具体地,在获取到访问请求对应的日志文件后,服务器会对日志文件进行敏感数据判断,若日志文件中存在敏感数据,则获取日志文件中的敏感数据。本实施例中的敏感数据包括接口ID、接口名称、入参、入参校验结果、出参和出参校验结果。当日志文件中出现接口ID、接口名称、入参、入参校验结果、出参和出参校验结果等数据时,则将这些数据视为敏感数据。
S73:将敏感数据存储到接口日志表中,并将敏感数据从日志文件中删除。
具体地,在获取敏感数据后,将敏感数据存储到预先创建的接口日志表中,并将敏感数据从日志文件中删除,使得日志文件中不出现敏感数据,避免了敏感数据以pafa.log格式输出,造成敏感数据的泄露,实现了日志文件的统一管理。另外,将敏感数据存储到接口日志表中,方便开发人员查看接口运行的具体情况,为后续开发人员查看接口运行情况提供了完整的接口信息。
进一步地,本实施例中的接口日志表是按照每个月的天数创建的,共创建有31个接口日志表,用于记录每个月中每一天产生的接口日志信息。该接口日志表记录的接口日志信息包括但不限于接口ID、日志生成时间、日志创建人、该接口ID对应的入参和出参、入参校验结果和出参校验结果等。
步骤S71-步骤S73,在完成对入参和出参的规则校验后,服务器会基于访问请求获取访问请求对应的日志文件,通过对日志文件进行敏感数据判断,获取敏感数据,并将敏感数据从日志文件中删除,实现了对日志文件的脱敏处理,保证了敏感数据的安全性。将敏感数据存储在接口日志表中,保证了敏感数据的持久化存储,为后续开发人员查看接口运行情况提供了完整的接口信息。
本发明实施例所提供的接口规则校验方法,通过访问标识获取与访问标识对应的模仿对象,使得后续进行规则校验时,在模仿对象中执行规则校验,达到了无痕检测的目的。模仿对象中包括接口信息,通过接口信息中的接口ID,从数据库中获取与接口ID对应的校验规则集,实现校验规则标准化,无需在编写不同的业务程序时,相应编写一套对应的规则校验集的功能,使得代码编写轻量化,节省代码编写时间,减少代码冗余量。使用校验规则对入参和出参分别进行规则校验,获取入参校验结果和校验结果,有助于保证入参和出参符合要求。在对入参和出参进行规则校验后,根据访问请求获取访问请求对应的日志文件,通过对日志文件进行敏感数据判断,获取敏感数据,并将敏感数据从日志文件中删除,实现了对日志文件的脱敏处理,保证了敏感数据的安全性。将敏感数据存储在接口日志表中,保证了敏感数据的持久化存储,为后续开发人员查看接口运行情况提供了完整的接口信息。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种接口规则校验装置,该接口规则校验装置与上述实施例中接口规则校验方法一一对应。如图7所示,该接口规则校验装置包括访问请求获取模块10、模仿对象处理模块20、校验规则集获取模块30、入参规则校验模块40、出参获取模块50和出参规则校验模块60。各功能模块详细说明如下:
访问请求获取模块10,用于获取访问请求,访问请求携带入参和访问地址,访问地址对应一访问标识。
模仿对象处理模块20,用于根据访问标识获取与访问标识对应的模仿对象,并根据模仿对象获取接口信息。
校验规则集获取模块30,用于从接口信息中获取接口ID,基于接口ID从数据库中获取与接口ID对应的校验规则集。
入参规则校验模块40,用于采用校验规则集对入参进行规则校验,获取入参校验结果,将入参校验结果发送给客户端。
出参获取模块50,用于获取客户端基于入参校验结果反馈的操作请求,若操作请求为继续处理的操作请求,则执行基于入参和与访问标识相对应的业务逻辑,获取与入参相对应的出参。
出参规则校验模块60,用于采用校验规则集对出参进行规则校验,获取出参校验结果,并将出参和出参校验结果反馈给访问请求对应的客户端。
进一步地,模仿对象处理模块20包括类获取单元和模仿对象获取单元。
类获取单元,用于根据访问标识获取与访问标识对应的类,类包括类标识。
模仿对象获取单元,用于判断是否存在与类标识相对应的模仿对象,若存在与类标识相对应的模仿对象,则获取模仿对象。
进一步地,校验规则集中包括校验规则,每一校验规则设置一校验优先级。
入参规则校验模块40包括入参规则校验单元和接口日志表存储单元。
入参规则校验单元,用于按照校验优先级从高到低的顺序,依序采用每一校验优先级对应的校验规则对入参进行规则校验,获取入参对应的入参校验结果。
第一接口日志表存储单元,用于将入参和入参校验结果存储到预先创建的接口日志表中。
进一步地,出参获取模块50,用于通过Java反射机制调用与访问标识对应的类中的业务逻辑,使入参执行业务逻辑,获取入参相对应的出参。
进一步地,出参规则校验模块60包括出参规则校验单元和第二接口日志表存储单元。
出参规则校验单元,用于按照校验优先级从高到低的顺序,依序采用每一校验优先级对应的校验规则对出参进行规则校验,获取出参对应的出参校验结果。
第二接口日志表存储单元,用于将出参和出参校验结果存储到预先创建的接口日志表中。
进一步地,接口规则校验装置还包括日志文件获取单元、敏感数据判断单元和敏感数据处理单元。
日志文件获取单元,用于基于访问请求获取访问请求对应的日志文件。
敏感数据判断单元,用于对日志文件进行敏感数据判断,获取日志文件中的敏感数据。
敏感数据处理单元,用于将敏感数据存储到接口日志表中,并将敏感数据从日志文件中删除。
关于接口规则校验装置的具体限定可以参见上文中对于接口规则校验方法的限定,在此不再赘述。上述接口规则校验装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储接口规则校验方法涉及到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种接口规则校验方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述接口规则校验方法的步骤,例如图2所示的步骤S10至步骤S60。或者,计算机程序被处理器执行时实现上述实施例接口规则校验装置的各模块/单元的功能,例如图7所示的模块10至模块60。为避免重复,这里不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述接口规则校验方法的步骤,例如图2所示的步骤S10至步骤S60。或者,计算机程序被处理器执行时实现上述实施例接口规则校验装置的各模块/单元的功能,例如图7所示的模块10至模块60。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围内。

Claims (10)

1.一种接口规则校验方法,其特征在于,包括:
获取访问请求,所述访问请求携带入参和访问地址,所述访问地址对应一访问标识;
根据所述访问标识获取与所述访问标识对应的模仿对象,并根据所述模仿对象获取接口信息,所述模仿对象指对访问标识对应的类的对象创建的副本;
从所述接口信息中获取接口ID,基于所述接口ID从数据库中获取与所述接口ID对应的校验规则集;
采用所述校验规则集对所述入参进行规则校验,获取入参校验结果,将所述入参校验结果发送给客户端;
获取客户端基于所述入参校验结果反馈的操作请求,若所述操作请求为继续处理的操作请求,则执行基于所述入参和与所述访问标识相对应的业务逻辑,获取与所述入参相对应的出参;
采用所述校验规则集对所述出参进行规则校验,获取出参校验结果,并将所述出参和所述出参校验结果反馈给所述访问请求对应的客户端。
2.如权利要求1所述的接口规则校验方法,其特征在于,所述根据所述访问标识获取与所述访问标识对应的模仿对象,包括:
根据访问标识获取与所述访问标识对应的类,所述类包括类标识;
判断是否存在与所述类标识相对应的模仿对象,若存在与所述类标识相对应的模仿对象,则获取所述模仿对象。
3.如权利要求1所述的接口规则校验方法,其特征在于,所述校验规则集中包括多个校验规则,每一校验规则设置一校验优先级;
所述采用所述校验规则集对所述入参进行规则校验,获取入参校验结果,包括:
按照所述校验优先级从高到低的顺序,依序采用每一校验优先级对应的校验规则对所述入参进行规则校验,获取所述入参对应的入参校验结果;
将所述入参和所述入参校验结果存储到预先创建的接口日志表中。
4.如权利要求1所述的接口规则校验方法,其特征在于,所述执行基于所述入参和与所述访问标识相对应的业务逻辑,获取与所述入参相对应的出参,包括:
通过Java反射机制调用与所述访问标识对应的类中的业务逻辑,使所述入参执行所述业务逻辑,获取所述入参相对应的出参。
5.如权利要求1所述的接口规则校验方法,其特征在于,所述采用所述校验规则集对所述出参进行规则校验,获取出参校验结果,包括:
按照所述校验优先级从高到低的顺序,依序采用每一校验优先级对应的校验规则对所述出参进行规则校验,获取所述出参对应的出参校验结果;
将所述出参和所述出参校验结果存储到预先创建的接口日志表中。
6.如权利要求5所述的接口规则校验方法,其特征在于,所述接口规则校验方法还包括:
基于所述访问请求获取所述访问请求对应的日志文件;
对所述日志文件进行敏感数据判断,获取所述日志文件中的敏感数据;
将所述敏感数据存储到所述接口日志表中,并将敏感数据从所述日志文件中删除。
7.一种接口规则校验装置,其特征在于,包括:
访问请求获取模块,用于获取访问请求,所述访问请求携带入参和访问地址,所述访问地址对应一访问标识;
模仿对象处理模块,用于根据所述访问标识获取与所述访问标识对应的模仿对象,并根据所述模仿对象获取接口信息,所述模仿对象指对访问标识对应的类的对象创建的副本;
校验规则集获取模块,用于从所述接口信息中获取接口ID,基于所述接口ID从数据库中获取与所述接口ID对应的校验规则集;
入参规则校验模块,用于采用所述校验规则集对所述入参进行规则校验,获取入参校验结果,将所述入参校验结果发送给客户端;
出参获取模块,用于获取客户端基于所述入参校验结果反馈的操作请求,若所述操作请求为继续处理的操作请求,则执行基于所述入参和与所述访问标识相对应的业务逻辑,获取与所述入参相对应的出参;
出参规则校验模块,用于采用所述校验规则集对所述出参进行规则校验,获取出参校验结果,并将所述出参和所述出参校验结果反馈给所述访问请求对应的客户端。
8.如权利要求7所述的接口规则校验装置,其特征在于,所述模仿对象处理模块,包括:
类获取单元,用于根据访问标识获取与所述访问标识对应的类,所述类包括类标识;
模仿对象获取单元,用于判断是否存在与所述类标识相对应的模仿对象,若存在与所述类标识相对应的模仿对象,则获取所述模仿对象。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述接口规则校验方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述接口规则校验方法的步骤。
CN201811012201.8A 2018-08-31 2018-08-31 接口规则校验方法、装置、计算机设备及存储介质 Active CN109344642B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811012201.8A CN109344642B (zh) 2018-08-31 2018-08-31 接口规则校验方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811012201.8A CN109344642B (zh) 2018-08-31 2018-08-31 接口规则校验方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN109344642A CN109344642A (zh) 2019-02-15
CN109344642B true CN109344642B (zh) 2024-03-01

Family

ID=65296638

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811012201.8A Active CN109344642B (zh) 2018-08-31 2018-08-31 接口规则校验方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN109344642B (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109903034B (zh) * 2019-02-28 2021-06-08 腾讯科技(深圳)有限公司 规则匹配方法、装置、计算机可读存储介质和计算机设备
CN110109818A (zh) * 2019-03-15 2019-08-09 平安城市建设科技(深圳)有限公司 后端接口数据的监测方法、装置、终端及可读存储介质
CN110275831B (zh) * 2019-06-18 2023-10-27 广州华多网络科技有限公司 协议接口的mock数据校验方法和装置
CN110515924B (zh) * 2019-08-15 2023-12-12 上海南燕信息技术有限公司 数据库操作逻辑校验方法、装置、设备及可读存储介质
CN110633160A (zh) * 2019-08-22 2019-12-31 浙江大搜车软件技术有限公司 接口调用方法、装置、计算机设备和存储介质
CN112650488A (zh) * 2019-10-12 2021-04-13 上海际链网络科技有限公司 参数校验方法及装置、存储介质、服务终端
CN112732471A (zh) * 2019-10-28 2021-04-30 北京沃东天骏信息技术有限公司 接口返回数据的纠错方法和纠错装置
CN112764726B (zh) * 2019-11-04 2023-09-01 北京京东振世信息技术有限公司 一种数据合成的方法和装置
CN111064725A (zh) * 2019-12-12 2020-04-24 广州鲁邦通物联网科技有限公司 一种代码零入侵接口校验方法和校验装置
CN111131221B (zh) * 2019-12-19 2022-04-12 中国平安财产保险股份有限公司 接口校验的装置、方法及存储介质
CN111338817B (zh) * 2020-02-21 2023-11-03 中国农业银行股份有限公司 一种接口预处理方法及装置
CN111680068B (zh) * 2020-06-02 2023-09-26 深圳乐信软件技术有限公司 一种校验方法、装置、设备及存储介质
CN111724136A (zh) * 2020-06-23 2020-09-29 平安医疗健康管理股份有限公司 病案首页信息的录入方法、装置及计算机设备
CN111917783B (zh) * 2020-08-06 2023-06-23 吉林亿联银行股份有限公司 一种通用报文的验证方法、装置及存储介质
CN112306879A (zh) * 2020-11-02 2021-02-02 平安普惠企业管理有限公司 接口参数校验方法、装置、设备及存储介质
CN112287009A (zh) * 2020-11-03 2021-01-29 平安普惠企业管理有限公司 接口调用和接口数据入库方法、装置、设备及存储介质
CN112269706B (zh) * 2020-11-16 2024-04-05 北京百度网讯科技有限公司 接口参数校验方法、装置、电子设备以及计算机可读介质
CN114697396A (zh) * 2020-12-29 2022-07-01 北京国双科技有限公司 请求处理方法、装置、电子设备及可读存储介质
CN113064906B (zh) * 2021-04-21 2022-05-31 杭州天谷信息科技有限公司 一种Binlog日志数据适配迁移方法和系统
CN113076502A (zh) * 2021-04-23 2021-07-06 南京始云网络科技有限公司 一种基于请求标识的参数控制方法与系统
CN113608913A (zh) * 2021-08-05 2021-11-05 上海微盟企业发展有限公司 参数校验方法、系统、装置及存储介质
CN113391935B (zh) * 2021-08-17 2021-12-17 中博信息技术研究院有限公司 动态配置型WebService接口服务实现方法和装置
CN113938388A (zh) * 2021-10-14 2022-01-14 工银科技有限公司 一种业务接口的参数校验方法及装置
CN113986384A (zh) * 2021-10-28 2022-01-28 数字天堂(北京)网络技术有限公司 基于客户端和云端的处理装置、方法、设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107451460A (zh) * 2017-06-28 2017-12-08 努比亚技术有限公司 接口处理方法、设备、服务器及计算机可读存储介质
WO2018006789A1 (zh) * 2016-07-04 2018-01-11 中兴通讯股份有限公司 一种参数校验方法和装置、以及网管服务器和计算机存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8204999B2 (en) * 2000-07-10 2012-06-19 Oracle International Corporation Query string processing
CN104348614B (zh) * 2013-07-24 2019-02-01 腾讯科技(深圳)有限公司 身份合法性验证的方法、装置及服务器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018006789A1 (zh) * 2016-07-04 2018-01-11 中兴通讯股份有限公司 一种参数校验方法和装置、以及网管服务器和计算机存储介质
CN107579836A (zh) * 2016-07-04 2018-01-12 中兴通讯股份有限公司 一种参数校验方法和装置、以及网管服务器
CN107451460A (zh) * 2017-06-28 2017-12-08 努比亚技术有限公司 接口处理方法、设备、服务器及计算机可读存储介质

Also Published As

Publication number Publication date
CN109344642A (zh) 2019-02-15

Similar Documents

Publication Publication Date Title
CN109344642B (zh) 接口规则校验方法、装置、计算机设备及存储介质
CN109474578B (zh) 报文消息校验方法、装置、计算机设备和存储介质
WO2019169759A1 (zh) 模拟接口的创建装置、方法及计算机可读存储介质
WO2020151333A1 (zh) 页面加载方法、装置、计算机设备和存储介质
WO2020192134A1 (zh) 基于Spring MVC的异常处理方法、装置、计算机设备和存储介质
CN111767095A (zh) 微服务生成方法、装置、终端设备及存储介质
US20160283357A1 (en) Call stack relationship acquiring method and apparatus
US10552781B2 (en) Task transformation responsive to confidentiality assessments
WO2020206905A1 (zh) 代码段保护方法、装置、计算机设备和存储介质
US20210042150A1 (en) Method-call-chain tracking method, electronic device, and computer readable storage medium
CN109657177A (zh) 升级后页面的生成方法、装置、存储介质及计算机设备
CN110532107B (zh) 接口调用方法、装置、计算机设备及存储介质
CN113761514B (zh) 一种云桌面多因子安全认证方法及系统
CN108255967B (zh) 存储过程的调用方法、装置、存储介质及终端
CN113268336A (zh) 一种服务的获取方法、装置、设备以及可读介质
CN110362630B (zh) 数据管理方法、装置、设备与计算机可读存储介质
CN112860749A (zh) 数据处理方法、装置、计算机设备和存储介质
WO2020211233A1 (zh) 批量数据编辑方法、装置、计算机设备及存储介质
MacIntyre et al. Pro PHP programming
CN114780497B (zh) 批量文件处理方法、装置、计算机设备、介质和程序产品
CN109995931B (zh) 一种实现自动呼叫的方法及装置
CN111046393A (zh) 漏洞信息上传方法、装置、终端设备及存储介质
CN111865726B (zh) 业务消息测试方法、装置、计算机系统和存储介质
CN108416233B (zh) 获取输入字符的方法及装置
CN113126848B (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