CN111835710B - 校验请求体的方法、装置、计算机设备和存储介质 - Google Patents
校验请求体的方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111835710B CN111835710B CN202010476910.2A CN202010476910A CN111835710B CN 111835710 B CN111835710 B CN 111835710B CN 202010476910 A CN202010476910 A CN 202010476910A CN 111835710 B CN111835710 B CN 111835710B
- Authority
- CN
- China
- Prior art keywords
- request
- map object
- check
- characteristic information
- json
- 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
Links
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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及接口校验的技术领域,提供了一种校验请求体的方法、装置、计算机设备和存储介质,包括:接收http请求,并对所述http请求进行解析,以获取所述http请求中请求体的请求JSON;根据所述请求JSON,在数据库中查找对应的校验JSON;将所述请求JSON以及所述校验JSON分别转换成map对象,得到请求map对象以及校验map对象;其中,所述请求map对象以及校验map对象均包括多级;遍历所述请求map对象,并针对所述请求map对象中每一级的目标参数,分别在所述校验map对象中查找与所述目标参数位于同一级的校验属性,根据所述校验属性对所述请求map对象中的目标参数进行校验。本申请校验请求体时,采用map对象的形式进行校验,可以并发进行校验,校验速度快,提高效益效率。
Description
技术领域
本申请涉及接口校验的技术领域,特别涉及一种校验请求体的方法、装置、计算机设备和存储介质。
背景技术
用户通过客户端向服务器发送http请求时,服务器接收到所述http请求后需要对http请求的请求体进行校验。服务器对请求体进行校验是指判断用户输入的请求体的值是否符合要求,如正则表达式校验,普通长度校验,格式设置校验,枚举类型校验等。
目前,市面上的产品在请求体的校验中,使用的是spring的valid注解方式,该方式只能校验请求体长度是否为空,不支持的校验功能较多;例如,该注解的方式,不支持动态配置,不支持限定范围,当对象里面包含对象时,注解的方式需要多次点击展开才可看到所有字段的校验,这样当大量请求时,会占据大量时间,校验效率低。
发明内容
本申请的主要目的为提供一种校验请求体的方法、装置、计算机设备和存储介质,旨在克服目前采用注解方式对请求体校验时校验效率低的缺陷。
为实现上述目的,本申请提供了一种校验请求体的方法,包括以下步骤:
接收http请求,并对所述http请求进行解析,以获取所述http请求中请求体的请求JSON;
根据所述请求JSON,在数据库中查找对应的校验JSON;
将所述请求JSON以及所述校验JSON分别转换成map对象,得到请求map对象以及校验map对象;其中,所述请求map对象以及校验map对象均包括多级;
遍历所述请求map对象,并针对所述请求map对象中每一级的目标参数,分别在所述校验map对象中查找与所述目标参数位于同一级的校验属性,根据所述校验属性对所述请求map对象中的目标参数进行校验。
进一步地,所述接收http请求,并对所述http请求进行解析,以获取所述http请求中请求体的请求JSON的步骤,包括:
接收用户在客户端触发的http请求,并解析出所述http请求中包括的请求行、请求头以及请求体;其中,所述请求头以及所述请求体预先经过所述客户端的加密处理;
获取所述请求行中的请求方法字段以及URL字段,并基于所述请求方法字段以及URL字段按照预设加密算法生成第一密码;
通过所述第一密码解密所述请求头,并提取出所述请求头中指定的特征信息以及关联的第二密码;
将所述第二密码与所述指定的特征信息进行组合,得到解密密码;
通过所述解密密码解密所述请求体,以获取所述请求体中的请求JSON。
进一步地,所述基于所述请求方法字段以及URL字段按照预设加密算法生成第一密码的步骤,包括:
对所述URL字段进行第一哈希计算得到对应的第一哈希值;
将所述请求方法字段与所述第一哈希值进行组合,生成所述第一密码。
进一步地,所述基于所述请求方法字段以及URL字段按照预设加密算法生成第一密码的步骤,包括:
计算所述请求方法字段以及所述URL字段中包括的总字符数;
根据数据库中预存的总字符数与加密算法的映射关系,选择出对应的预设加密算法;
基于选择出的预设加密算法对所述请求方法字段以及URL字段进行加密处理,生成所述第一密码。
进一步地,所述提取出所述请求头中指定的特征信息以及关联的第二密码的步骤,包括:
提取出所述请求头中存储的特征信息,并选择出指定的特征信息;所述指定的特征信息包括第一特征信息以及第二特征信息;
分别对所述第一特征信息以及第二特征信息进行哈希计算,得到第一哈希值以及第二哈希值;
将所述第一特征信息与所述第二哈希值进行拼接组合,得到第一组合;
将所述第二特征信息与所述第一哈希值进行拼接组合,得到第二组合;
将所述第一组合与第二组合进行拼接,并进行哈希计算得到所述第二密码。
进一步地,所述遍历所述请求map对象,并针对所述请求map对象中每一级的目标参数,分别在所述校验map对象中查找与所述目标参数位于同一级的校验属性,根据所述校验属性对所述请求map对象中的目标参数进行校验的步骤,包括:
将所述请求map对象以及校验map对象中的同一级建立关联关系;
遍历所述请求map对象,以获取所述请求map对象每一级中目标参数;其中,所述目标参数包括请求JSON数据;
遍历所述校验map对象,以获取所述校验map对象每一级中的校验属性;其中,所述校验属性包括校验JSON数据;
计算所述请求map对象每一级中的请求JSON数据的请求键值,以及计算所述校验map对象每一级中的校验JSON数据的校验键值;
判断所述请求map对象中与所述校验map对象中具有关联关系的同一级所对应的所述请求键值与校验键值是否相同;
若每一级对应的所述请求键值与校验键值均相同,则验证所述请求体为合法;若任一级对应的所述请求键值与校验键值不同,则验证所述请求体为不合法。
本申请中还提供了一种校验请求体的装置,包括:
接收单元,用于接收http请求,并对所述http请求进行解析,以获取所述http请求中请求体的请求JSON;
查找单元,用于根据所述请求JSON,在数据库中查找对应的校验JSON;
转换单元,用于将所述请求JSON以及所述校验JSON分别转换成map对象,得到请求map对象以及校验map对象;其中,所述请求map对象以及校验map对象均包括多级;
验证单元,用于遍历所述请求map对象,并针对所述请求map对象中每一级的目标参数,分别在所述校验map对象中查找与所述目标参数位于同一级的校验属性,根据所述校验属性对所述请求map对象中的目标参数进行校验。
进一步地,所述接收单元,包括:
解析子单元,用于接收用户在客户端触发的http请求,并解析出所述http请求中包括的请求行、请求头以及请求体;其中,所述请求头以及所述请求体预先经过所述客户端的加密处理;
生成子单元,用于获取所述请求行中的请求方法字段以及URL字段,并基于所述请求方法字段以及URL字段按照预设加密算法生成第一密码;
提取子单元,用于通过所述第一密码解密所述请求头,并提取出所述请求头中指定的特征信息以及关联的第二密码;
组合子单元,用于将所述第二密码与所述指定的特征信息进行组合,得到解密密码;
解密子单元,用于通过所述解密密码解密所述请求体,以获取所述请求体中的请求JSON。
进一步地,所述生成子单元,具体用于:
对所述URL字段进行第一哈希计算得到对应的第一哈希值;
将所述请求方法字段与所述第一哈希值进行组合,生成所述第一密码。
进一步地,所述生成子单元,具体用于:
计算所述请求方法字段以及所述URL字段中包括的总字符数;
根据数据库中预存的总字符数与加密算法的映射关系,选择出对应的预设加密算法;
基于选择出的预设加密算法对所述请求方法字段以及URL字段进行加密处理,生成所述第一密码。
进一步地,所述提取子单元,具体用于:
提取出所述请求头中存储的特征信息,并选择出指定的特征信息;所述指定的特征信息包括第一特征信息以及第二特征信息;
分别对所述第一特征信息以及第二特征信息进行哈希计算,得到第一哈希值以及第二哈希值;
将所述第一特征信息与所述第二哈希值进行拼接组合,得到第一组合;
将所述第二特征信息与所述第一哈希值进行拼接组合,得到第二组合;
将所述第一组合与第二组合进行拼接,并进行哈希计算得到所述第二密码。
进一步地,所述验证单元,包括:
建立子单元,用于将所述请求map对象以及校验map对象中的同一级建立关联关系;
第一遍历子单元,用于遍历所述请求map对象,以获取所述请求map对象每一级中目标参数;其中,所述目标参数包括请求JSON数据;
第二遍历子单元,用于遍历所述校验map对象,以获取所述校验map对象每一级中的校验属性;其中,所述校验属性包括校验JSON数据;
计算子单元,用于计算所述请求map对象每一级中的请求JSON数据的请求键值,以及计算所述校验map对象每一级中的校验JSON数据的校验键值;
判断子单元,用于判断所述请求map对象中与所述校验map对象中具有关联关系的同一级所对应的所述请求键值与校验键值是否相同;
验证子单元,用于若每一级对应的所述请求键值与校验键值均相同,则验证所述请求体为合法;若任一级对应的所述请求键值与校验键值不同,则验证所述请求体为不合法。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请提供的校验请求体的方法、装置、计算机设备和存储介质,包括:接收http请求,并对所述http请求进行解析,以获取所述http请求中请求体的请求JSON;根据所述请求JSON,在数据库中查找对应的校验JSON;将所述请求JSON以及所述校验JSON分别转换成map对象,得到请求map对象以及校验map对象;其中,所述请求map对象以及校验map对象均包括多级;遍历所述请求map对象,并针对所述请求map对象中每一级的目标参数,分别在所述校验map对象中查找与所述目标参数位于同一级的校验属性,根据所述校验属性对所述请求map对象中的目标参数进行校验。本申请校验请求体时,采用map对象的形式进行校验,可以并发进行校验,校验速度快,提高效益效率。
附图说明
图1是本申请一实施例中校验请求体的方法步骤示意图;
图2是本申请一实施例中校验请求体的装置结构框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请一实施例中提供了一种校验请求体的方法,包括以下步骤:
步骤S1,接收http请求,并对所述http请求进行解析,以获取所述http请求中请求体的请求JSON;
步骤S2,根据所述请求JSON,在数据库中查找对应的校验JSON;
步骤S3,将所述请求JSON以及所述校验JSON分别转换成map对象,得到请求map对象以及校验map对象;其中,所述请求map对象以及校验map对象均包括多级;
步骤S4,遍历所述请求map对象,并针对所述请求map对象中每一级的目标参数,分别在所述校验map对象中查找与所述目标参数位于同一级的校验属性,根据所述校验属性对所述请求map对象中的目标参数进行校验。
在本实施例中,上述方法应用于校验http请求中的请求体参数。具体地,如上述步骤S1所述的,用户在客户端进行操作时,可以触发上述http请求,该http请求中携带有请求行、请求头以及请求体;在本实施例中,即是对上述请求体中的参数进行校验。上述请求体中的参数通常以JSON形式表达,本实施例中将其定义为请求JSON。
如上述步骤S2所述的,上述数据库中预先配置有多个校验JSON,该校验JSON包括有多个属性,例如isEmpty(指是否可以为空,其中N即为不能为空),type(指的是什么类型),maxLength(表示字段的最大长度),enums(可以上传的值,其是一个集合),remark(表达字段的中文名)。在一具体实施例中,上述校验JSON可以是,{“name”:{“isEmpty”:”Y”,“maxLenth”:”30”}}。在其他实施例中,上述校验JSON中还可以自定义配置更多的逻辑,可以根据需要动态添加,从而提供灵活性。例如,可以添加字段的上传格式是否符合yyyy-MM-dd mm:ss格式,是否以中国两个字开头等等功能,进行正则表达式的匹配。上述校验JSON存储在es,redis任何一种中。
在本实施例中,根据上述请求JSON,便可以在数据库中查找对应的校验JSON,该查找出的校验JSON则用于对上述请求JSON进行校验处理。
如上述步骤S3-S4所述的,将请求JSON和校验的JSON都放入map中,转换得到上述请求map对象以及校验map对象;上述请求map对象以及校验map对象均是以多级的形式存在。然后,遍历请求map对象,进而在校验map对象查找与上述请求map对象中的参数位于同一级的校验属性,根据该校验属性分别对应进行校验。上述校验过程是不互斥的,可以并发处理,同时可以添加正则表达式校验,普通长度校验,格式设置校验,枚举类型校验等等,也可添加可选属性,当上述校验属性全部通过才可通过请求体的校验,失败即退出并返回报错信息。
在本实施例中,校验功能更加强大,支持在校验JSON中限定范围,支持正则表达式,支持固定格式,例如:支持yyyy-MM-dd mm:ss,可以自定义设定上传格式和类型,效率大于目前的valid注解,克服目前校验效率低下的缺陷。从map对象中方便看到全部校验逻辑,从而快速定位请求参数的规范错误,从而加快项目的开发速度。进一步地,也可自动抓包,进行分析匹配,如果失败即可添加邮件或者短信告警,更加智能化自动化的了解系统性能。
在一实施例中,所述接收http请求,并对所述http请求进行解析,以获取所述http请求中请求体的请求JSON的步骤S1,包括:
步骤S11,接收用户在客户端触发的http请求,并解析出所述http请求中包括的请求行、请求头以及请求体;其中,所述请求头以及所述请求体预先经过所述客户端的加密处理;
步骤S12,获取所述请求行中的请求方法字段以及URL字段,并基于所述请求方法字段以及URL字段按照预设加密算法生成第一密码;
步骤S13,通过所述第一密码解密所述请求头,并提取出所述请求头中指定的特征信息以及关联的第二密码;
步骤S14,将所述第二密码与所述指定的特征信息进行组合,得到解密密码;
步骤S15,通过所述解密密码解密所述请求体,以获取所述请求体中的请求JSON。
在本实施例中,上述http请求包括请求行、请求头以及请求体,其中请求头以及请求体中会携带有用户的客户端信息、账户信息等,显然用户并不想信息被泄露,因此需要对上述请求头以及请求体进行加密处理;可以理解的是,上述用户的客户端在触发上述http请求时,即通过预设的方式对上述http请求中的请求体以及请求头进行加密处理。
在本实施例中,如上述步骤S11所述的,在接收到用户在客户端触发的http请求时,将该的http请求解析为请求行、请求头以及请求体;上述请求行中包括请求方法字段、URL字段以及HTTP协议版本字段。
如上述步骤S12所述的,获取所述请求行中的请求方法字段以及URL字段,并基于所述请求方法字段以及URL字段按照预设加密算法生成第一密码;应当理解的是,上述客户端在触发上述http请求时按照同样的方式生成第一密码,并使用上述第一密码对请求头进行加密。在一实施例中,可以将上述URL字段中的所有字符与上述请求方法字段中指定位置上的字符进行组合,以得到上述第一密码,不同的URL字段必然对应不同的密码。
如上述步骤S13所述的,由于上述请求头预先经过上述第一密码的加密处理,因此通过所述第一密码便可以对上述请求头进行解密,以获取到所述请求头存储的信息。在本实施例中,上述请求头中不仅预存有特征信息,还关联有一个第二密码;上述特征信息指的是上述请求头中存储的User-Agent、Accept-Charset、Accept-Encoding、Cookie、Accept、Host等多种特征信息,上述指定的特征信息为上述特征信息中的至少任意一种。上述第二密码可以是预存在请求头中的一个任意密码。在其他实施例中,上述第二密码也可以不直接存储在上述请求头中,而是可以是根据上述请求头的特征信息按照预设算法所生成的一个密码。
如上述步骤S14所述的,将所述第二密码与所述指定的特征信息进行组合,得到解密密码,该解密密码即用来对上述请求体进行解密;进而如上述步骤S15所述的,通过所述解密密码解密所述请求体,获取所述请求体中的请求JSON。
在本实施例中,通过将http请求解析为多层结构,每一层结构中存储有不同的信息,且通过环环相扣的加密形式对请求头以及请求体进行加密;在解密时也需要按照环环相扣的解密形式进行解密;不仅增加了解密的复杂度,避免被轻易破解,而且上述密码均存储在http请求中,获取可以由http中的信息直接生成,不需要额外存储密码,增加了各层结构之间的依赖联系;若其中一层结构遭到破坏或者篡改,则会造成整个http请求不可用。
在一实施例中,所述基于所述请求方法字段以及URL字段按照预设加密算法生成第一密码的步骤S12,包括:
对所述URL字段进行第一哈希计算得到对应的第一哈希值;
将所述请求方法字段与所述第一哈希值进行组合,生成所述第一密码。
在本实施例中,由于URL字段中通常含有特殊符号,因此首先对该URL字段进行哈希计算处理得到对应的第一哈希值。在一实施例中,可以根据上述请求方法字段以及URL字段中包括的总字符数,然后根据数据库中预存的总字符数与哈希算法的映射关系,选择出对应的哈希算法,通过选择出的哈希算法对上述URL字段进行第一哈希计算;在其他实施例中,也可以是根据上述数据库中预存的请求方法字段与哈希算法的映射关系,选择对应的哈希算法,对上述URL字段进行第一哈希计算。
在一实施例中,所述基于所述请求方法字段以及URL字段按照预设加密算法生成第一密码的步骤,包括:
计算所述请求方法字段以及所述URL字段中包括的总字符数;
根据数据库中预存的总字符数与加密算法的映射关系,选择出对应的预设加密算法;
基于选择出的预设加密算法对所述请求方法字段以及URL字段进行加密处理,生成所述第一密码。
在本实施例中,计算上述请求方法字段以及URL字段中包括的总字符数,然后根据数据库中预存的总字符数与加密算法的映射关系,选择出对应的预设加密算法。可以理解的是,不同的总字符数对应不同的加密算法,即请求行不同时,每次使用的加密算法会有所不同,避免被轻易破解加密算法。
在一实施例中,所述提取出所述请求头中指定的特征信息以及关联的第二密码的步骤,包括:
提取出所述请求头中存储的特征信息,并选择出指定的特征信息;所述指定的特征信息包括第一特征信息以及第二特征信息;
分别对所述第一特征信息以及第二特征信息进行哈希计算,得到第一哈希值以及第二哈希值;
将所述第一特征信息与所述第二哈希值进行拼接组合,得到第一组合;
将所述第二特征信息与所述第一哈希值进行拼接组合,得到第二组合;
将所述第一组合与第二组合进行拼接,并进行哈希计算得到所述第二密码。
具体地,在本实施例中,上述第二密码生成时需要交叉多种特征信息,其中任意一种特征信息不对时,便无法生成正确的密码。
在一实施例中,所述遍历所述请求map对象,并针对所述请求map对象中每一级的目标参数,分别在所述校验map对象中查找与所述目标参数位于同一级的校验属性,根据所述校验属性对所述请求map对象中的目标参数进行校验的步骤S4,包括:
步骤S41,将所述请求map对象以及校验map对象中的同一级建立关联关系;
步骤S42,遍历所述请求map对象,以获取所述请求map对象每一级中目标参数;其中,所述目标参数包括请求JSON数据;
步骤S43,遍历所述校验map对象,以获取所述校验map对象每一级中的校验属性;其中,所述校验属性包括校验JSON数据;
步骤S44,计算所述请求map对象每一级中的请求JSON数据的请求键值,以及计算所述校验map对象每一级中的校验JSON数据的校验键值;
步骤S45,判断所述请求map对象中与所述校验map对象中具有关联关系的同一级所对应的所述请求键值与校验键值是否相同;
步骤S46,若每一级对应的所述请求键值与校验键值均相同,则验证所述请求体为合法;若任一级对应的所述请求键值与校验键值不同,则验证所述请求体为不合法。
在本实施例中,上述请求map对象以及校验map对象均包括多级结构,每一级上均包括有对应的JSON数据,当需要进行校验时,校验map对象中的JSON数据只能对请求map对象中处于同一级的JSON数据进行校验,因此,需要建立同一级的关联关系。在具体进行验证时,则可以获取所述请求map对象每一级中的请求JSON数据,以及获取所述校验map对象每一级中的校验JSON数据,并使用处于同一级的校验JSON数据对请求JSON数据进行校验。校验时,可以直接进行校验JSON数据与请求JSON数据的匹配,但是匹配过程通常比较繁琐,计算量大。因此,优先计算所述请求map对象每一级中的请求JSON数据的请求键值,以及计算所述校验map对象每一级中的校验JSON数据的校验键值,上述请求键值与校验键值均具有唯一性,因此,只需要进行请求键值与校验键值的比对,便可以验证是否请求体是否合法。
参照图2,本申请一实施例中还提供了一种校验请求体的装置,包括:
接收单元10,用于接收http请求,并对所述http请求进行解析,以获取所述http请求中请求体的请求JSON;
查找单元20,用于根据所述请求JSON,在数据库中查找对应的校验JSON;
转换单元30,用于将所述请求JSON以及所述校验JSON分别转换成map对象,得到请求map对象以及校验map对象;其中,所述请求map对象以及校验map对象均包括多级;
验证单元40,用于遍历所述请求map对象,并针对所述请求map对象中每一级的目标参数,分别在所述校验map对象中查找与所述目标参数位于同一级的校验属性,根据所述校验属性对所述请求map对象中的目标参数进行校验。
在一实施例中,所述接收单元10,包括:
解析子单元,用于接收用户在客户端触发的http请求,并解析出所述http请求中包括的请求行、请求头以及请求体;其中,所述请求头以及所述请求体预先经过所述客户端的加密处理;
生成子单元,用于获取所述请求行中的请求方法字段以及URL字段,并基于所述请求方法字段以及URL字段按照预设加密算法生成第一密码;
提取子单元,用于通过所述第一密码解密所述请求头,并提取出所述请求头中指定的特征信息以及关联的第二密码;
组合子单元,用于将所述第二密码与所述指定的特征信息进行组合,得到解密密码;
解密子单元,用于通过所述解密密码解密所述请求体,以获取所述请求体中的请求JSON。
在一实施例中,所述生成子单元,具体用于:
对所述URL字段进行第一哈希计算得到对应的第一哈希值;
将所述请求方法字段与所述第一哈希值进行组合,生成所述第一密码。
进一步地,所述生成子单元,具体用于:
计算所述请求方法字段以及所述URL字段中包括的总字符数;
根据数据库中预存的总字符数与加密算法的映射关系,选择出对应的预设加密算法;
基于选择出的预设加密算法对所述请求方法字段以及URL字段进行加密处理,生成所述第一密码。
在一实施例中,所述提取子单元,具体用于:
提取出所述请求头中存储的特征信息,并选择出指定的特征信息;所述指定的特征信息包括第一特征信息以及第二特征信息;
分别对所述第一特征信息以及第二特征信息进行哈希计算,得到第一哈希值以及第二哈希值;
将所述第一特征信息与所述第二哈希值进行拼接组合,得到第一组合;
将所述第二特征信息与所述第一哈希值进行拼接组合,得到第二组合;
将所述第一组合与第二组合进行拼接,并进行哈希计算得到所述第二密码。
在一实施例中,所述验证单元40,包括:
建立子单元,用于将所述请求map对象以及校验map对象中的同一级建立关联关系;
第一遍历子单元,用于遍历所述请求map对象,以获取所述请求map对象每一级中目标参数;其中,所述目标参数包括请求JSON数据;
第二遍历子单元,用于遍历所述校验map对象,以获取所述校验map对象每一级中的校验属性;其中,所述校验属性包括校验JSON数据;
计算子单元,用于计算所述请求map对象每一级中的请求JSON数据的请求键值,以及计算所述校验map对象每一级中的校验JSON数据的校验键值;
判断子单元,用于判断所述请求map对象中与所述校验map对象中具有关联关系的同一级所对应的所述请求键值与校验键值是否相同;
验证子单元,用于若每一级对应的所述请求键值与校验键值均相同,则验证所述请求体为合法;若任一级对应的所述请求键值与校验键值不同,则验证所述请求体为不合法。
在本实施例中,上述装置中的各个单元、子单元的具体实现请参照上述方法实施例中的具体实现,在此不再进行赘述。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储请求数据、加密算法等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种校验请求体的方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种校验请求体的方法。可以理解的是,本实施例中的计算机可读存储介质可以是易失性可读存储介质,也可以为非易失性可读存储介质。
综上所述,为本申请实施例中提供的校验请求体的方法、装置、计算机设备和存储介质,包括:接收http请求,并对所述http请求进行解析,以获取所述http请求中请求体的请求JSON;根据所述请求JSON,在数据库中查找对应的校验JSON;将所述请求JSON以及所述校验JSON分别转换成map对象,得到请求map对象以及校验map对象;其中,所述请求map对象以及校验map对象均包括多级;遍历所述请求map对象,并针对所述请求map对象中每一级的目标参数,分别在所述校验map对象中查找与所述目标参数位于同一级的校验属性,根据所述校验属性对所述请求map对象中的目标参数进行校验。本申请校验请求体时,采用map对象的形式进行校验,可以并发进行校验,校验速度快,提高效益效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(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)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (5)
1.一种校验请求体的方法,其特征在于,包括以下步骤:
接收用户在客户端触发的http请求,并解析出所述http请求中包括的请求行、请求头以及请求体;其中,所述http请求为获取请求行中的请求方法字段以及URL字段,并基于所述请求方法字段以及URL字段按照预设加密算法而生成的,所述请求行中包括请求方法字段、URL字段以及HTTP协议版本字段,所述请求头以及所述请求体中会携带有用户的客户端信息、账户信息,所述请求头以及所述请求体预先经过所述客户端的加密处理;
获取所述请求行中的请求方法字段以及URL字段,并基于所述请求方法字段以及URL字段按照预设加密算法生成第一密码;
通过所述第一密码解密所述请求头,并提取出所述请求头中指定的特征信息以及关联的第二密码;
将所述第二密码与所述指定的特征信息进行组合,得到解密密码;
通过所述解密密码解密所述请求体,以获取所述请求体中的请求JSON;
根据所述请求JSON,在数据库中查找对应的校验JSON;
将所述请求JSON以及所述校验JSON分别转换成map对象,得到请求map对象以及校验map对象;其中,所述请求map对象以及校验map对象均包括多级;
遍历所述请求map对象,并针对所述请求map对象中每一级的目标参数,分别在所述校验map对象中查找与所述目标参数位于同一级的校验属性,根据所述校验属性对所述请求map对象中的目标参数进行校验;
所述基于所述请求方法字段以及URL字段按照预设加密算法生成第一密码的步骤,包括:
计算所述请求方法字段以及所述URL字段中包括的总字符数;
根据数据库中预存的总字符数与加密算法的映射关系,选择出对应的预设加密算法;
基于选择出的预设加密算法对所述请求方法字段以及URL字段进行加密处理,生成所述第一密码;
所述提取出所述请求头中指定的特征信息以及关联的第二密码的步骤,包括:
提取出所述请求头中存储的特征信息,并选择出指定的特征信息;所述指定的特征信息包括第一特征信息以及第二特征信息;
分别对所述第一特征信息以及第二特征信息进行哈希计算,得到第一哈希值以及第二哈希值;
将所述第一特征信息与所述第二哈希值进行拼接组合,得到第一组合;
将所述第二特征信息与所述第一哈希值进行拼接组合,得到第二组合;
将所述第一组合与第二组合进行拼接,并进行哈希计算得到所述第二密码;
所述遍历所述请求map对象,并针对所述请求map对象中每一级的目标参数,分别在所述校验map对象中查找与所述目标参数位于同一级的校验属性,根据所述校验属性对所述请求map对象中的目标参数进行校验的步骤,包括:
将所述请求map对象以及校验map对象中的同一级建立关联关系;
遍历所述请求map对象,以获取所述请求map对象每一级中目标参数;其中,所述目标参数包括请求JSON数据;
遍历所述校验map对象,以获取所述校验map对象每一级中的校验属性;其中,所述校验属性包括校验JSON数据;
计算所述请求map对象每一级中的请求JSON数据的请求键值,以及计算所述校验map对象每一级中的校验JSON数据的校验键值;
判断所述请求map对象中与所述校验map对象中具有关联关系的同一级所对应的所述请求键值与校验键值是否相同;
若每一级对应的所述请求键值与校验键值均相同,则验证所述请求体为合法;若任一级对应的所述请求键值与校验键值不同,则验证所述请求体为不合法。
2.根据权利要求1所述的校验请求体的方法,其特征在于,所述基于所述请求方法字段以及URL字段按照预设加密算法生成第一密码的步骤,包括:
对所述URL字段进行第一哈希计算得到对应的第一哈希值;
将所述请求方法字段与所述第一哈希值进行组合,生成所述第一密码。
3.一种校验请求体的装置,其特征在于,包括:
接收单元,用于接收用户在客户端触发的http请求,并解析出所述http请求中包括的请求行、请求头以及请求体;其中,所述http请求为获取请求行中的请求方法字段以及URL字段,并基于所述请求方法字段以及URL字段按照预设加密算法而生成的,所述请求行中包括请求方法字段、URL字段以及HTTP协议版本字段,所述请求头以及所述请求体中会携带有用户的客户端信息、账户信息,所述请求头以及所述请求体预先经过所述客户端的加密处理;
获取所述请求行中的请求方法字段以及URL字段,并计算所述请求方法字段以及所述URL字段中包括的总字符数;
根据数据库中预存的总字符数与加密算法的映射关系,选择出对应的预设加密算法;
基于选择出的预设加密算法对所述请求方法字段以及URL字段进行加密处理,生成第一密码;
通过所述第一密码解密所述请求头,并提取出所述请求头中存储的特征信息,并选择出指定的特征信息;所述指定的特征信息包括第一特征信息以及第二特征信息;
分别对所述第一特征信息以及第二特征信息进行哈希计算,得到第一哈希值以及第二哈希值;
将所述第一特征信息与所述第二哈希值进行拼接组合,得到第一组合;
将所述第二特征信息与所述第一哈希值进行拼接组合,得到第二组合;
将所述第一组合与第二组合进行拼接,并进行哈希计算得到第二密码;
将所述第二密码与所述指定的特征信息进行组合,得到解密密码;
通过所述解密密码解密所述请求体,以获取所述请求体中的请求JSON;
查找单元,用于根据所述请求JSON,在数据库中查找对应的校验JSON;
转换单元,用于将所述请求JSON以及所述校验JSON分别转换成map对象,得到请求map对象以及校验map对象;其中,所述请求map对象以及校验map对象均包括多级;
验证单元,用于将所述请求map对象以及校验map对象中的同一级建立关联关系;
遍历所述请求map对象,以获取所述请求map对象每一级中目标参数;其中,所述目标参数包括请求JSON数据;
遍历所述校验map对象,以获取所述校验map对象每一级中的校验属性;其中,所述校验属性包括校验JSON数据;
计算所述请求map对象每一级中的请求JSON数据的请求键值,以及计算所述校验map对象每一级中的校验JSON数据的校验键值;
判断所述请求map对象中与所述校验map对象中具有关联关系的同一级所对应的所述请求键值与校验键值是否相同;
若每一级对应的所述请求键值与校验键值均相同,则验证所述请求体为合法;若任一级对应的所述请求键值与校验键值不同,则验证所述请求体为不合法。
4.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至2中任一项所述的方法的步骤。
5.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至2中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010476910.2A CN111835710B (zh) | 2020-05-29 | 2020-05-29 | 校验请求体的方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010476910.2A CN111835710B (zh) | 2020-05-29 | 2020-05-29 | 校验请求体的方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111835710A CN111835710A (zh) | 2020-10-27 |
CN111835710B true CN111835710B (zh) | 2023-08-15 |
Family
ID=72913769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010476910.2A Active CN111835710B (zh) | 2020-05-29 | 2020-05-29 | 校验请求体的方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111835710B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112650804B (zh) * | 2020-12-30 | 2023-02-28 | 苏州科达科技股份有限公司 | 大数据接入方法、装置、系统及存储介质 |
CN116662018B (zh) * | 2023-07-28 | 2023-11-03 | 苏州浪潮智能科技有限公司 | 服务器的管理方法、装置、系统、电子设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008025272A1 (fr) * | 2006-08-25 | 2008-03-06 | Huawei Technologies Co., Ltd. | Système de protocole d'ouverture de session, moyen pour établir un canal de sécurité et procédé correspondant |
CN105491094A (zh) * | 2014-09-24 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 处理http请求的方法及装置 |
CN107172012A (zh) * | 2017-04-18 | 2017-09-15 | 北京思特奇信息技术股份有限公司 | 一种报文格式转换方法和系统 |
CN108132880A (zh) * | 2017-12-21 | 2018-06-08 | 武汉斑马快跑科技有限公司 | 一种参数校验方法及装置 |
CN109150821A (zh) * | 2018-06-01 | 2019-01-04 | 成都通甲优博科技有限责任公司 | 基于超文本传输协议http的数据交互方法及系统 |
CN109324958A (zh) * | 2018-06-27 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种rest统一校验方法、装置、设备及可读存储介质 |
CN109802957A (zh) * | 2019-01-03 | 2019-05-24 | 深圳壹账通智能科技有限公司 | 接口对接方法、装置、计算机设备和存储介质 |
CN110581838A (zh) * | 2019-07-15 | 2019-12-17 | 平安普惠企业管理有限公司 | 可持续请求数据流的方法、电子装置及计算机设备 |
CN110968322A (zh) * | 2019-11-27 | 2020-04-07 | 北京旷视科技有限公司 | Json数据的处理方法、装置和电子系统 |
CN111106899A (zh) * | 2019-12-16 | 2020-05-05 | 远景智能国际私人投资有限公司 | 物联网中的数据校验方法、装置、计算机设备及存储介质 |
CN111131282A (zh) * | 2019-12-27 | 2020-05-08 | 武汉极意网络科技有限公司 | 请求加密方法、装置、电子设备及存储介质 |
-
2020
- 2020-05-29 CN CN202010476910.2A patent/CN111835710B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008025272A1 (fr) * | 2006-08-25 | 2008-03-06 | Huawei Technologies Co., Ltd. | Système de protocole d'ouverture de session, moyen pour établir un canal de sécurité et procédé correspondant |
CN105491094A (zh) * | 2014-09-24 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 处理http请求的方法及装置 |
CN107172012A (zh) * | 2017-04-18 | 2017-09-15 | 北京思特奇信息技术股份有限公司 | 一种报文格式转换方法和系统 |
CN108132880A (zh) * | 2017-12-21 | 2018-06-08 | 武汉斑马快跑科技有限公司 | 一种参数校验方法及装置 |
CN109150821A (zh) * | 2018-06-01 | 2019-01-04 | 成都通甲优博科技有限责任公司 | 基于超文本传输协议http的数据交互方法及系统 |
CN109324958A (zh) * | 2018-06-27 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种rest统一校验方法、装置、设备及可读存储介质 |
CN109802957A (zh) * | 2019-01-03 | 2019-05-24 | 深圳壹账通智能科技有限公司 | 接口对接方法、装置、计算机设备和存储介质 |
CN110581838A (zh) * | 2019-07-15 | 2019-12-17 | 平安普惠企业管理有限公司 | 可持续请求数据流的方法、电子装置及计算机设备 |
CN110968322A (zh) * | 2019-11-27 | 2020-04-07 | 北京旷视科技有限公司 | Json数据的处理方法、装置和电子系统 |
CN111106899A (zh) * | 2019-12-16 | 2020-05-05 | 远景智能国际私人投资有限公司 | 物联网中的数据校验方法、装置、计算机设备及存储介质 |
CN111131282A (zh) * | 2019-12-27 | 2020-05-08 | 武汉极意网络科技有限公司 | 请求加密方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111835710A (zh) | 2020-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112019493B (zh) | 身份认证方法、身份认证装置、计算机设备和介质 | |
CN110888838B (zh) | 基于对象存储的请求处理方法、装置、设备及存储介质 | |
CN109981297B (zh) | 区块链处理方法、装置、设备及存储介质 | |
CN110069297B (zh) | 基于Spring MVC的异常处理方法、装置、计算机设备和存储介质 | |
US20150271202A1 (en) | Method, device, and system for detecting link layer hijacking, user equipment, and analyzing server | |
US9792374B2 (en) | Method and system for facilitating terminal identifiers | |
US9686344B2 (en) | Method for implementing cross-domain jump, browser, and domain name server | |
CN111314306A (zh) | 接口访问方法及装置、电子设备、存储介质 | |
CN107528865B (zh) | 文件的下载方法和系统 | |
CN111835710B (zh) | 校验请求体的方法、装置、计算机设备和存储介质 | |
CN109409099B (zh) | cookie数据处理方法、装置、计算机设备和存储介质 | |
CN111475376A (zh) | 处理测试数据的方法、装置、计算机设备和存储介质 | |
CN111736811A (zh) | 表单数据校验方法、系统、服务器和用户终端 | |
CN113055399A (zh) | 注入攻击的攻击成功检测方法、系统及相关装置 | |
CN113434889A (zh) | 业务数据的访问方法、装置、设备和存储介质 | |
CN111125748A (zh) | 越权查询的判断方法、装置、计算机设备和存储介质 | |
CN113505353B (zh) | 一种认证方法、装置、设备和存储介质 | |
CN111984989B (zh) | 一种自身校验发布和访问url的方法、装置、系统和介质 | |
CN116680673B (zh) | 显示器的身份校验方法、装置以及计算机设备 | |
CN114584313B (zh) | 一种设备物理身份认证方法、系统、装置及第一平台 | |
CN114760078A (zh) | 一种防止恶意篡改页面请求参数的方法和系统 | |
CN110460585B (zh) | 设备身份识别方法、装置、计算机设备以及存储介质 | |
CN111597573B (zh) | 页面嵌入方法、装置、计算机设备和存储介质 | |
CN110572371B (zh) | 基于html5本地存储机制的身份唯一性校验控制方法 | |
CN111431888B (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 |