CN115996246B - 目标协议请求的处理方法、装置、电子设备及存储介质 - Google Patents
目标协议请求的处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115996246B CN115996246B CN202310288512.1A CN202310288512A CN115996246B CN 115996246 B CN115996246 B CN 115996246B CN 202310288512 A CN202310288512 A CN 202310288512A CN 115996246 B CN115996246 B CN 115996246B
- Authority
- CN
- China
- Prior art keywords
- class
- preprocessing
- code
- processing
- section
- 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
Images
Classifications
-
- 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
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
本发明提供一种目标协议请求的处理方法、装置、电子设备及存储介质,涉及数据处理技术领域,该方法包括:自定义预处理类、切面感知类和业务处理类;切面感知类包括:前置切面处理流程代码和后置切面处理流程代码,前置切面处理流程代码中包括:预处理类;响应客户端发送的目标协议请求,执行切面感知类中的前置切面处理流程代码,并在执行前置切面处理流程代码中执行预处理类中的预处理逻辑代码;执行业务处理类中的业务处理逻辑代码;执行切面感知类中的后置切面处理流程代码;向客户端反馈目标协议应答消息。本发明可以实现预处理逻辑代码和业务处理逻辑代码的解耦,避免预处理逻辑代码对业务处理逻辑代码的侵入和污染。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种目标协议请求的处理方法、装置、电子设备及存储介质。
背景技术
目前,如图1所示,目标协议请求(例如:超文本传输协议(Hyper Text TransferProtocol,HTTP)请求)的处理流程中,预处理逻辑代码和业务处理逻辑代码混杂在一起。当需要对目标协议请求进行预处理时,需要在业务流程方法体中进行处理,造成预处理逻辑代码与业务处理逻辑代码的耦合、混杂,预处理逻辑代码此时侵入了业务处理逻辑代码。且如果预处理逻辑代码与业务处理逻辑代码的边界不够清晰,那么可能造成业务处理逻辑代码被污染,造成非预期的后果。
发明内容
本发明提供一种目标协议请求的处理方法、装置、电子设备及存储介质,用以解决现有技术中预处理逻辑和业务处理逻辑混杂在一起,造成预处理逻辑与业务处理逻辑的耦合,导致预处理逻辑侵入业务处理逻辑,且如果预处理逻辑代码与业务处理逻辑代码的边界不够清晰,那么可能造成业务处理逻辑代码被污染,造成非预期的后果的缺陷,实现预处理逻辑代码和业务处理逻辑代码的解耦,避免预处理逻辑代码对业务处理逻辑代码的侵入和污染,从而避免预处理逻辑代码对业务处理逻辑代码的侵入和污染导致的非预期的后果。
本发明提供一种目标协议请求的处理方法,包括:
自定义预处理类、切面感知类和业务处理类;所述切面感知类包括:前置切面处理流程代码和后置切面处理流程代码,所述前置切面处理流程代码中包括:所述预处理类;
响应客户端发送的目标协议请求,执行所述切面感知类中的所述前置切面处理流程代码,并在执行所述前置切面处理流程代码中执行所述预处理类中的预处理逻辑代码;
执行所述业务处理类中的业务处理逻辑代码;
执行所述切面感知类中的所述后置切面处理流程代码;
向所述客户端反馈目标协议应答消息。
根据本发明提供的一种目标协议请求的处理方法,所述预处理逻辑代码和所述业务处理逻辑代码的执行模式为同步执行模式或异步执行模式。
根据本发明提供的一种目标协议请求的处理方法,通过以下步骤确定所述预处理逻辑代码和所述业务处理逻辑代码的执行模式:
在执行所述前置切面处理流程代码中判断同步参数为真或假;
若所述同步参数为真,则确定所述预处理逻辑代码和所述业务处理逻辑代码的执行模式为所述同步执行模式;
若所述同步参数为假,则确定所述预处理逻辑代码和所述业务处理逻辑代码的执行模式为所述异步执行模式。
根据本发明提供的一种目标协议请求的处理方法,所述方法还包括:
在执行所述前置切面处理流程代码中判断所述目标协议请求是否符合预设阻断规则;
若所述目标协议请求符合所述预设阻断规则,则阻断所述目标协议请求,并返回所述目标协议应答消息。
根据本发明提供的一种目标协议请求的处理方法,所述在执行所述前置切面处理流程代码中判断所述目标协议请求是否符合预设阻断规则,包括:
在执行所述前置切面处理流程代码中,获取所述目标协议请求的请求参数和/或历史预处理结果;
基于所述目标协议请求的请求参数和/或所述历史预处理结果,判断所述目标协议请求是否符合所述预设阻断规则。
根据本发明提供的一种目标协议请求的处理方法,所述执行所述业务处理类中的业务处理逻辑代码,包括:
获取所述目标协议请求的全部请求参数;
以所述目标协议请求的全部请求参数作为预处理输入参数,执行所述业务处理类中的业务处理逻辑代码。
根据本发明提供的一种目标协议请求的处理方法,所述自定义预处理类、切面感知类和业务处理类,包括:
自定义一个预处理标准接口;
继承所述预处理标准接口,添加所述预处理逻辑代码,得到所述预处理类;
自定义注解类,向所述注解类中添加切面、所述前置切面处理流程代码和所述后置切面处理流程代码,得到所述切面感知类;
自定义所述业务处理类,所述业务处理类中包括:所述业务处理逻辑代码。
本发明还提供一种目标协议请求的处理装置,包括:
自定义模块,用于自定义预处理类、切面感知类和业务处理类;所述切面感知类包括:前置切面处理流程代码和后置切面处理流程代码,所述前置切面处理流程代码中包括:所述预处理类;
第一执行模块,用于响应客户端发送的目标协议请求,执行所述切面感知类中的所述前置切面处理流程代码,并在执行所述前置切面处理流程代码中执行所述预处理类中的预处理逻辑代码;
第二执行模块,用于执行所述业务处理类中的业务处理逻辑代码;
第三执行模块,用于执行所述切面感知类中的所述后置切面处理流程代码;
反馈模块,用于向所述客户端反馈目标协议应答消息。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述的目标协议请求的处理方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述的目标协议请求的处理方法的步骤。
本发明提供的目标协议请求的处理方法、装置、电子设备及存储介质,由于预处理逻辑代码是在前置切面处理流程代码中执行,即预处理逻辑代码与业务处理逻辑代码是独立的,预处理逻辑代码与业务处理逻辑代码的边界清晰,可以实现预处理逻辑代码和业务处理逻辑代码的解耦,避免预处理逻辑代码对业务处理逻辑代码的侵入和污染,从而避免预处理逻辑代码对业务处理逻辑代码的侵入和污染导致的非预期的后果。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术提供的目标协议请求的处理方法的原理示意图;
图2是本发明提供的目标协议请求的处理方法的流程示意图;
图3是本发明提供的目标项目的导入示意图;
图4是本发明提供的目标协议请求的处理方法的原理示意图;
图5是本发明提供的目标协议请求的处理方法的具体流程示意图;
图6是本发明提供的目标协议请求的处理装置的结构示意图;
图7是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明中为描述的对象所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。
发明人在发明过程中注意到,现有的HTTP协议请求的处理方法存在以下问题:
(1)预处理逻辑代码对业务处理逻辑代码的侵入性
HTTP协议请求的处理流程中,预处理逻辑代码和业务处理逻辑代码混杂在一起。当需要对目标协议请求进行预处理时,需要在业务流程方法体中进行处理,造成预处理逻辑代码与业务处理逻辑代码混杂在一起。例如:
此时,预处理逻辑代码侵入了业务处理逻辑代码。且如果预处理逻辑代码与业务处理逻辑代码的边界不够清晰,那么可能造成业务处理逻辑代码被污染,造成非预期的后果。
(2)代码重复冗余
在所有的接口代码中都需要增加逻辑代码,重复很高很冗余,且需要注入全部HTTP请求参数,即网络资源地址(URL)、报头(Header)和正文(Body),接口定义繁杂。
以使用常用的斯普瑞布特(SpringBoot)模型-视图-控制器(Model ViewController,MVC)框架为例:
当需要更多预处理的时候,则代码更冗余,例如再增加一个认证预处理:
(3)非法恶意请求不能阻断
HTTP协议请求的处理流程中,在业务处理之前执行预处理,且每次HTTP协议请求均进行预处理,当遇到非法恶意请求(例如:分布式拒绝服务攻击(Distributed denial ofservice attack,DDoS)请求)时,如果频繁被触发预处理逻辑代码,可能导致系统负载过高。
(4)不能异步处理
HTTP协议请求的处理流程中,预处理与业务处理是串行的,必需先执行完预处理,再执行业务处理,在执行效率上有一定的影响。
基于此,下面结合图2至图5描述本发明的目标协议请求的处理方法。
请参照图2,图2是本发明提供的目标协议请求的处理方法的流程示意图。该方法可以应用于服务端,客户端可以为网络浏览器,服务端可以为网络服务器。如图2所示,该方法可以包括以下步骤:
步骤201、自定义预处理类、切面感知类和业务处理类;切面感知类包括:前置切面处理流程代码和后置切面处理流程代码,前置切面处理流程代码中包括:预处理类;
步骤202、响应客户端发送的目标协议请求,执行切面感知类中的前置切面处理流程代码,并在执行前置切面处理流程代码中执行预处理类中的预处理逻辑代码;
步骤203、执行业务处理类中的业务处理逻辑代码;
步骤204、执行切面感知类中的后置切面处理流程代码;
步骤205、向客户端反馈目标协议应答消息。
在步骤201中,1),首先自定义一个预处理标准接口,例如:
2)继承预处理标准接口,添加预处理逻辑代码,得到预处理类,例如:
3)自定义注解(Annotation)类,例如:
可选地,注解类的类名和预处理类的类名保持一致,在同一代码包路径下,预处理类的类名为“注解类的类名+ Aspect”格式。
4)向注解类中添加切面、前置切面处理流程代码和后置切面处理流程代码,得到切面感知类,例如:
面向切面编程(Aspect Oriented Programming,AOP),是一种低侵入的软件开发技术,它基于面向对象编程(Object Oriented Programming,OOP),在类(Class)、接口(Interface)或方法(Method)上标记切面注解以达到程序初始化类或调用接口/方法时,预先执行预定义的切面逻辑后,再执行后继处理的目的。AOP的主要操作对象是流程“切面”,可简单的理解它是贯穿于方法之中,在方法执行前、执行时、执行后、返回值后、异常后要执行的操作。相当于是将我们原本一条线执行的程序在中间切开加入了一些其他操作一样。
@RecordLog即为AOP注解,它会在调用此处理(process)方法前触发,执行预定开发好的逻辑(记录访问日志)。通过给RecordLog注解添加AOP切面,可以提供前置的预处理,以及后置处理。
5)随后,如图3所示,将预处理类打包为预处理实现包,将切面感知类打包为切面感知处理包,然后将预处理实现包和切面感知处理包一起导入到目标项目中,使机制在目标项目中生效。
6)在需要预处理的接口方法上标记Annotation标识即可生效:
7)自定义业务处理类,业务处理类中包括:业务处理逻辑代码,例如:
在步骤202中,目标协议请求可以为HTTP协议请求,本实施例不限于此。其中,HTTP是一个用于传输超媒体文档(例如超文本标记语言(Hyper Text Markup Language,HTML))的应用层协议。它是为网络浏览器与网络服务器之间的通信而设计的,但也可以用于其他目的。HTTP遵循经典的客户端-服务端模型,客户端打开一个连接以发出请求,然后等待直到收到服务器端响应。
示例性地,响应客户端发送的HTTP协议请求,首先调用切面感知处理包执行切面感知类中的前置切面处理流程代码,并在执行前置切面处理流程代码中调用预处理实现包执行预处理类中的预处理逻辑代码。
在步骤203中,如图4所示,在业务方法体内执行业务处理类中的业务处理逻辑代码。预处理在业务方法体之外,预处理逻辑代码和业务处理逻辑代码是独立的,预处理逻辑代码和业务处理逻辑代码的边界清晰。
可选地,获取目标协议请求的全部请求参数;以目标协议请求的全部请求参数作为预处理输入参数,执行业务处理类中的业务处理逻辑代码。
示例性地,获取HTTP协议请求的全部请求参数,即URL、Header、Body,作为预处理输入参数,执行业务处理类中的业务处理逻辑代码,可以有更为广泛全面的预处理输入参数。
在步骤204中,如图4所示,在业务处理完毕后,调用切面感知处理包执行切面感知类中的后置切面处理流程代码。
在步骤205中,如图4所示,向客户端反馈HTTP协议应答消息。
本实施例提供的目标协议请求的处理方法,由于预处理逻辑代码是在前置切面处理流程代码中执行,即预处理逻辑代码与业务处理逻辑代码是独立的,预处理逻辑代码与业务处理逻辑代码的边界清晰,可以实现预处理逻辑代码和业务处理逻辑代码的解耦,避免预处理逻辑代码对业务处理逻辑代码的侵入和污染,从而避免预处理逻辑代码对业务处理逻辑代码的侵入和污染导致的非预期的后果。
可选地,预处理逻辑代码和业务处理逻辑代码的执行模式为同步执行模式或异步执行模式。
在一实施例中,如图5所示,通过以下步骤确定预处理逻辑代码和业务处理逻辑代码的执行模式:
在执行前置切面处理流程代码中判断同步参数为真或假;若同步参数为真,则确定预处理逻辑代码和业务处理逻辑代码的执行模式为同步执行模式;若同步参数为假,则确定预处理逻辑代码和业务处理逻辑代码的执行模式为异步执行模式。
示例性地,关于上述(2)中重复冗余的代码,通过本实施例可简化为:
因此,本实施例可简化重复冗余的代码,使代码更简洁。
关于第一句代码,即@RecordLog(sync=false,contentType="text/xml,application/json"),同步参数为sync,sync=false,即同步参数为假,确定预处理逻辑代码和业务处理逻辑代码的执行模式为异步执行模式。
关于第二句代码,即@Authentication(sync=true,contentType="text/xml,application/json"),sync=true,即同步参数为真,确定预处理逻辑代码和业务处理逻辑代码的执行模式为同步执行模式。
在本实施例中,可通过同步参数确定预处理逻辑代码和业务处理逻辑代码的执行模式为同步执行模式或异步执行模式。与现有技术中预处理逻辑代码和业务处理逻辑代码是串行的,必须先执行预处理逻辑代码,再执行业务处理逻辑代码,在执行效率上有一定影响相比,本实施例可以采用异步执行模式执行预处理逻辑代码,与业务处理逻辑代码并行,能够提升整体执行效率。
在一实施例中,如图5所示,该方法还包括:在执行前置切面处理流程代码中判断目标协议请求是否符合预设阻断规则;若目标协议请求符合所述预设阻断规则,则阻断目标协议请求,并返回目标协议应答消息。
示例性地,由于HTTP协议请求的处理流程中,在业务处理之前执行预处理,且每次HTTP协议请求均进行预处理,当遇到非法恶意请求(例如:DDoS请求)时,如果频繁被触发预处理逻辑代码,可能导致系统负载过高。在本实施例中,对于符合预设阻断规则的HTTP协议请求,可阻断目标协议请求,并返回预定HTTP协议应答消息,可以避免频繁触发预处理逻辑代码,提升抗攻击能力。
可选地,在执行前置切面处理流程代码中,获取目标协议请求的请求参数和/或历史预处理结果;基于目标协议请求的请求参数和/或历史预处理结果,判断目标协议请求是否符合预设阻断规则。
具体地,预设阻断规则可以包括:恶意请求的请求参数条件。在执行前置切面处理流程代码中,获取HTTP协议的请求参数,URL、Header、Body,判断这些请求参数是否符合恶意请求的请求参数条件,若是,则HTTP协议请求符合预设阻断规则。
和/或,预设阻断规则可以包括:历史预处理结果异常的条件。例如:历史预处理结果包括:单位时间内的请求次数,在执行前置切面处理流程代码中,获取HTTP协议请求在单位时间内的请求次数,如果请求次数大于预设次数,即请求次数异常,则HTTP协议请求符合预设阻断规则。
在本实施例中,可通过目标协议请求的请求参数和/或历史预处理结果,快速准确判断出目标协议请求是否符合预设阻断规则。
下面对本发明提供的目标协议请求的处理装置进行描述,下文描述的目标协议请求的处理装置与上文描述的目标协议请求的处理方法可相互对应参照。
请参照图6,图6是本发明提供的目标协议请求的处理装置的结构示意图。如图6所示,该装置可以包括:
自定义模块10,用于自定义预处理类、切面感知类和业务处理类;所述切面感知类包括:前置切面处理流程代码和后置切面处理流程代码,所述前置切面处理流程代码中包括:所述预处理类;
第一执行模块20,用于响应客户端发送的目标协议请求,执行所述切面感知类中的所述前置切面处理流程代码,并在执行所述前置切面处理流程代码中执行所述预处理类中的预处理逻辑代码;
第二执行模块30,用于执行所述业务处理类中的业务处理逻辑代码;
第三执行模块40,用于执行所述切面感知类中的所述后置切面处理流程代码;
反馈模块50,用于向所述客户端反馈目标协议应答消息。
可选地,所述预处理逻辑代码和所述业务处理逻辑代码的执行模式为同步执行模式或异步执行模式。
可选地,所述第一执行模块20,还用于:
在执行所述前置切面处理流程代码中判断同步参数为真或假;
若所述同步参数为真,则确定所述预处理逻辑代码和所述业务处理逻辑代码的执行模式为所述同步执行模式;
若所述同步参数为假,则确定所述预处理逻辑代码和所述业务处理逻辑代码的执行模式为所述异步执行模式。
可选地,所述第一执行模块20,还用于:
在执行所述前置切面处理流程代码中判断所述目标协议请求是否符合预设阻断规则;
若所述目标协议请求符合所述预设阻断规则,则阻断所述目标协议请求,并返回所述目标协议应答消息。
可选地,所述第一执行模块20,具体用于:
在执行所述前置切面处理流程代码中,获取所述目标协议请求的请求参数和/或历史预处理结果;
基于所述目标协议请求的请求参数和/或所述历史预处理结果,判断所述目标协议请求是否符合所述预设阻断规则。
可选地,所述第二执行模块30,具体用于:
获取所述目标协议请求的全部请求参数;
以所述目标协议请求的全部请求参数作为预处理输入参数,执行所述业务处理类中的业务处理逻辑代码。
可选地,所述自定义模块10,具体用于:
自定义一个预处理标准接口;
继承所述预处理标准接口,添加所述预处理逻辑代码,得到所述预处理类;
自定义注解类,向所述注解类中添加切面、所述前置切面处理流程代码和所述后置切面处理流程代码,得到所述切面感知类;
自定义所述业务处理类,所述业务处理类中包括:所述业务处理逻辑代码。
图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行目标协议请求的处理方法,该方法包括:
自定义预处理类、切面感知类和业务处理类;所述切面感知类包括:前置切面处理流程代码和后置切面处理流程代码,所述前置切面处理流程代码中包括:所述预处理类;
响应客户端发送的目标协议请求,执行所述切面感知类中的所述前置切面处理流程代码,并在执行所述前置切面处理流程代码中执行所述预处理类中的预处理逻辑代码;
执行所述业务处理类中的业务处理逻辑代码;
执行所述切面感知类中的所述后置切面处理流程代码;
向所述客户端反馈目标协议应答消息。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的目标协议请求的处理方法,该方法包括:
自定义预处理类、切面感知类和业务处理类;所述切面感知类包括:前置切面处理流程代码和后置切面处理流程代码,所述前置切面处理流程代码中包括:所述预处理类;
响应客户端发送的目标协议请求,执行所述切面感知类中的所述前置切面处理流程代码,并在执行所述前置切面处理流程代码中执行所述预处理类中的预处理逻辑代码;
执行所述业务处理类中的业务处理逻辑代码;
执行所述切面感知类中的所述后置切面处理流程代码;
向所述客户端反馈目标协议应答消息。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的目标协议请求的处理方法,该方法包括:
自定义预处理类、切面感知类和业务处理类;所述切面感知类包括:前置切面处理流程代码和后置切面处理流程代码,所述前置切面处理流程代码中包括:所述预处理类;
响应客户端发送的目标协议请求,执行所述切面感知类中的所述前置切面处理流程代码,并在执行所述前置切面处理流程代码中执行所述预处理类中的预处理逻辑代码;
执行所述业务处理类中的业务处理逻辑代码;
执行所述切面感知类中的所述后置切面处理流程代码;
向所述客户端反馈目标协议应答消息。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种目标协议请求的处理方法,其特征在于,包括:
自定义预处理类、切面感知类和业务处理类;所述切面感知类包括:前置切面处理流程代码和后置切面处理流程代码,所述前置切面处理流程代码中包括:所述预处理类;
响应客户端发送的目标协议请求,执行所述切面感知类中的所述前置切面处理流程代码,并在执行所述前置切面处理流程代码中执行所述预处理类中的预处理逻辑代码;
执行所述业务处理类中的业务处理逻辑代码;
执行所述切面感知类中的所述后置切面处理流程代码;
向所述客户端反馈目标协议应答消息;
其中,所述自定义预处理类、切面感知类和业务处理类,包括:
自定义一个预处理标准接口;
继承所述预处理标准接口,添加所述预处理逻辑代码,得到所述预处理类;
自定义注解类,向所述注解类中添加切面、所述前置切面处理流程代码和所述后置切面处理流程代码,得到所述切面感知类;
将所述预处理类打包为预处理实现包,将所述切面感知类打包为切面感知处理包,并将所述预处理实现包和所述切面感知处理包导入目标项目中;
在需要预处理的接口方法上标记注解标识;
自定义所述业务处理类,所述业务处理类中包括:所述业务处理逻辑代码;所述预处理逻辑代码在业务方法体之外,所述预处理逻辑代码和所述业务处理逻辑代码是独立的。
2.根据权利要求1所述的目标协议请求的处理方法,其特征在于,所述预处理逻辑代码和所述业务处理逻辑代码的执行模式为同步执行模式或异步执行模式。
3.根据权利要求2所述的目标协议请求的处理方法,其特征在于,通过以下步骤确定所述预处理逻辑代码和所述业务处理逻辑代码的执行模式:
在执行所述前置切面处理流程代码中判断同步参数为真或假;
若所述同步参数为真,则确定所述预处理逻辑代码和所述业务处理逻辑代码的执行模式为所述同步执行模式;
若所述同步参数为假,则确定所述预处理逻辑代码和所述业务处理逻辑代码的执行模式为所述异步执行模式。
4.根据权利要求1至3任一项所述的目标协议请求的处理方法,其特征在于,所述方法还包括:
在执行所述前置切面处理流程代码中判断所述目标协议请求是否符合预设阻断规则;
若所述目标协议请求符合所述预设阻断规则,则阻断所述目标协议请求,并返回所述目标协议应答消息。
5.根据权利要求4所述的目标协议请求的处理方法,其特征在于,所述在执行所述前置切面处理流程代码中判断所述目标协议请求是否符合预设阻断规则,包括:
在执行所述前置切面处理流程代码中,获取所述目标协议请求的请求参数和/或历史预处理结果;
基于所述目标协议请求的请求参数和/或所述历史预处理结果,判断所述目标协议请求是否符合所述预设阻断规则。
6.根据权利要求1至3任一项所述的目标协议请求的处理方法,其特征在于,所述执行所述业务处理类中的业务处理逻辑代码,包括:
获取所述目标协议请求的全部请求参数;
以所述目标协议请求的全部请求参数作为预处理输入参数,执行所述业务处理类中的业务处理逻辑代码。
7.一种目标协议请求的处理装置,其特征在于,包括:
自定义模块,用于自定义预处理类、切面感知类和业务处理类;所述切面感知类包括:前置切面处理流程代码和后置切面处理流程代码,所述前置切面处理流程代码中包括:所述预处理类;
第一执行模块,用于响应客户端发送的目标协议请求,执行所述切面感知类中的所述前置切面处理流程代码,并在执行所述前置切面处理流程代码中执行所述预处理类中的预处理逻辑代码;
第二执行模块,用于执行所述业务处理类中的业务处理逻辑代码;
第三执行模块,用于执行所述切面感知类中的所述后置切面处理流程代码;
反馈模块,用于向所述客户端反馈目标协议应答消息;
其中,所述自定义模块具体用于:
自定义一个预处理标准接口;
继承所述预处理标准接口,添加所述预处理逻辑代码,得到所述预处理类;
自定义注解类,向所述注解类中添加切面、所述前置切面处理流程代码和所述后置切面处理流程代码,得到所述切面感知类;
将所述预处理类打包为预处理实现包,将所述切面感知类打包为切面感知处理包,并将所述预处理实现包和所述切面感知处理包导入目标项目中;
在需要预处理的接口方法上标记注解标识;
自定义所述业务处理类,所述业务处理类中包括:所述业务处理逻辑代码;所述预处理逻辑代码在业务方法体之外,所述预处理逻辑代码和所述业务处理逻辑代码是独立的。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述的目标协议请求的处理方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的目标协议请求的处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310288512.1A CN115996246B (zh) | 2023-03-23 | 2023-03-23 | 目标协议请求的处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310288512.1A CN115996246B (zh) | 2023-03-23 | 2023-03-23 | 目标协议请求的处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115996246A CN115996246A (zh) | 2023-04-21 |
CN115996246B true CN115996246B (zh) | 2023-06-09 |
Family
ID=85993807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310288512.1A Active CN115996246B (zh) | 2023-03-23 | 2023-03-23 | 目标协议请求的处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115996246B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508668A (zh) * | 2011-11-11 | 2012-06-20 | 西安交通大学 | 一种基于动态栈的ejb3 容器aop 实现方法 |
CN109783333A (zh) * | 2018-12-13 | 2019-05-21 | 平安普惠企业管理有限公司 | 重复点击过滤方法、装置、计算机设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2292272A1 (en) * | 1998-12-22 | 2000-06-22 | Nortel Networks Corporation | System and method to support configurable policies for services in directory-based networks |
US11107172B2 (en) * | 2009-08-31 | 2021-08-31 | Leigh W Budlong | Methods for transforming complex zoning codes and regulations to produce usable data |
CN112230903B (zh) * | 2020-10-12 | 2024-05-17 | 上海赛可出行科技服务有限公司 | 一种基于iOS应用的轻量级解耦式埋点方法及装置 |
CN115550468A (zh) * | 2021-06-29 | 2022-12-30 | 腾讯科技(深圳)有限公司 | 业务请求处理方法、装置、设备及介质 |
-
2023
- 2023-03-23 CN CN202310288512.1A patent/CN115996246B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508668A (zh) * | 2011-11-11 | 2012-06-20 | 西安交通大学 | 一种基于动态栈的ejb3 容器aop 实现方法 |
CN109783333A (zh) * | 2018-12-13 | 2019-05-21 | 平安普惠企业管理有限公司 | 重复点击过滤方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115996246A (zh) | 2023-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2542996B1 (en) | Input parameter filtering for web application security | |
US7343626B1 (en) | Automated detection of cross site scripting vulnerabilities | |
US10375107B2 (en) | Method and apparatus for dynamic content marking to facilitate context-aware output escaping | |
US8201248B2 (en) | Authenticating a web page with embedded javascript | |
US20180332057A1 (en) | Cyberattack behavior detection method and apparatus | |
EP2144420A1 (en) | Web application security filtering | |
CN107124430B (zh) | 页面劫持监控方法、装置、系统和存储介质 | |
CN106790007A (zh) | 基于XSS和CSRF的Web攻击防御系统及其方法 | |
WO2007059169A2 (en) | Media transfer protocol | |
CN106911684A (zh) | 一种鉴权方法及系统 | |
EP3008874A1 (en) | Keyed communication token | |
CN107612926A (zh) | 一种基于客户端识别的一句话WebShell拦截方法 | |
CN115996246B (zh) | 目标协议请求的处理方法、装置、电子设备及存储介质 | |
CN111770079A (zh) | 一种web框架注入漏洞检测方法及装置 | |
CN113496024B (zh) | 一种Web页面的登录方法、装置、存储介质及电子设备 | |
CN112202717B (zh) | 一种http请求的处理方法、装置、服务器及存储介质 | |
CN112966265A (zh) | 富文本安全处理方法、装置、电子设备和存储介质 | |
CN108881320B (zh) | 一种用户登陆的认证处理方法、服务器及客户端 | |
CN106713328A (zh) | 一种基于长连接的信息处理方法和装置 | |
CN116308236A (zh) | 邮件处理方法、装置、电子设备及存储介质 | |
Mueller et al. | Dangers and prevalence of unprotected web fonts | |
EP3502925A1 (en) | Computer system and method for extracting dynamic content from websites | |
JP2010250791A (ja) | ウェブサーバとクライアントとの間の通信を監視するウェブ保安管理装置及び方法 | |
CN114449505A (zh) | 一种nfc标签数据的传输方法 | |
CN107168980A (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 |