一种数据变更处理方法和系统、电子设备及存储介质与流程
未命名
10-18
阅读:76
评论:0

1.本技术涉及信息安全技术领域,尤其涉及一种数据变更处理方法和系统、电子设备及存储介质。
背景技术:
2.在软件开发和运行过程中,数据安全是一个重要的指标,对于重要的库或表中的数据,需要防止其他对象擅自篡改。相关技术中,往往基于数据加密或者添加加密字段来减小数据被篡改的风险,但这一方式往往无法对其他对象不合法新增的数据及时识别,使得数据安全性较低。
技术实现要素:
3.本技术实施例的主要目的在于提出一种数据变更处理方法和系统、电子设备及存储介质,旨在能够及时识别其他对象对数据库的不合法操作,减小数据被篡改的风险,提高数据安全性。
4.为实现上述目的,本技术实施例的第一方面提出了一种数据变更处理方法,所述方法包括:
5.获取目标数据库中被写入目标日志的数据变更信息,其中,所述目标日志是二进制日志;
6.通过预设的日志监听器对所述数据变更信息进行事件监听,得到所述数据变更信息对应的事件类型;
7.根据所述事件类型和预设的事件策略信息对所述数据变更信息对应的事件进行处理。
8.在一些实施例,在所述获取目标数据库中被写入目标日志的数据变更信息之前,所述方法还包括:
9.确定第一配置信息;
10.根据所述第一配置信息修改所述目标数据库的配置文件,以触发开启所述目标日志的日志服务。
11.在一些实施例,在所述通过预设的日志监听器对所述数据变更信息进行事件监听,得到所述数据变更信息对应的事件类型之前,所述方法还包括:
12.基于指定的项目名和包名,创建项目;
13.将预设的第二配置信息添加至所述项目的配置文件,其中,所述配置文件用于为所述项目配置所述日志监听器;
14.基于所述项目中新建的类连接所述日志监听器和所述目标日志。
15.在一些实施例,所述根据所述事件类型和预设的事件策略信息对所述数据变更信息对应的事件进行处理,包括:
16.若所述数据变更信息对应的事件类型为数据新增,则获取新增数据,并对所述新
增数据进行加密,得到加密数据;
17.对所述加密数据进行编码,得到目标字符串;
18.将所述目标字符串与预先存储的校验字符串进行比对,得到校验结果;
19.若所述校验结果表示所述目标字符串与所述校验字符串不一致,则确定所述新增数据为不合法数据,并根据所述事件策略信息进行事件处理。
20.在一些实施例,在所述根据所述事件类型和预设的事件策略信息对所述数据变更信息对应的事件进行处理之前,所述方法还包括:
21.响应于对象的数据存储请求,接收待存储的目标数据;
22.根据所述目标数据的字段名对所述目标数据进行排序,得到数据序列;
23.根据url键值对的格式对所述数据序列中的目标数据进行拼接,得到初步字符串;
24.基于预设密钥对所述初步字符串进行签名处理,得到签名信息;
25.对所述签名信息进行编码处理,得到编码信息;
26.将所述编码信息作为所述校验字符串,并将所述校验字符串与所述目标数据写入所述目标数据库。
27.在一些实施例,所述根据所述事件类型和预设的事件策略信息对所述数据变更信息对应的事件进行处理,包括:
28.若所述数据变更信息对应的事件类型为数据更新,则确定被更新的数据;
29.若所述被更新的数据包含不允许更新的字段或者表,则确定所述事件为异常更新事件;
30.根据所述事件策略信息对所述异常更新事件进行事件处理。
31.在一些实施例,所述根据所述事件类型和预设的事件策略信息对所述数据变更信息对应的事件进行处理,包括:
32.若所述数据变更信息对应的事件类型为数据删除,则确定被删除的数据;
33.若所述被删除的数据包含不允许删除的字段或者表,则确定所述事件为异常删除事件;
34.根据所述事件策略信息对所述异常删除事件进行事件处理。
35.为实现上述目的,本技术实施例的第二方面提出了一种数据变更处理系统,所述系统包括:
36.数据获取模块,用于获取目标数据库中被写入目标日志的数据变更信息,其中,所述目标日志是二进制日志;
37.事件监听模块,用于通过预设的日志监听器对所述数据变更信息进行事件监听,得到所述数据变更信息对应的事件类型;
38.业务处理模块,用于根据所述事件类型和预设的事件策略信息对所述数据变更信息对应的事件进行处理。
39.为实现上述目的,本技术实施例的第三方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法。
40.为实现上述目的,本技术实施例的第四方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一
方面所述的方法。
41.本技术提出的数据变更处理方法和系统、电子设备及存储介质,其通过获取目标数据库中被写入目标日志的数据变更信息,其中,目标日志是二进制日志,能够快速并及时获取数据变更信息。进一步地,通过预设的日志监听器对数据变更信息进行事件监听,得到数据变更信息对应的事件类型,通过监听能够及时识别其他对象所执行的数据增加、更新和删除操作,并得到对应的事件类型。进一步地,根据事件类型和预设的事件策略信息对数据变更信息对应的事件进行处理,能够针对不同的事件类型,识别出不合法的操作,还能将数据恢复原状,以此减小数据被篡改的风险,提高数据安全性。
附图说明
42.图1是本技术实施例提供的数据变更处理方法的流程图;
43.图2是本技术实施例提供的数据变更处理方法的另一流程图;
44.图3是本技术实施例提供的数据变更处理方法的另一流程图;
45.图4是图1中的步骤s103的流程图;
46.图5是本技术实施例提供的数据变更处理方法的另一流程图;
47.图6是图1中的步骤s103的另一流程图;
48.图7是图1中的步骤s103的另一流程图;
49.图8是本技术实施例提供的数据变更处理系统的结构示意图;
50.图9是本技术实施例提供的电子设备的硬件结构示意图。
具体实施方式
51.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。
52.需要说明的是,虽然在系统示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于系统中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
53.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
54.在软件开发和运行过程中,数据安全是一个重要的指标,对于重要的库或表中的数据,需要防止其他对象擅自篡改。相关技术中,往往基于数据加密或者添加加密字段来减小数据被篡改的风险,但这一方式往往无法对其他对象不合法新增的数据及时识别,使得数据安全性较低。同时,也往往难以恢复被更新或者被删除的数据。
55.基于此,本技术实施例提供了一种数据变更处理方法和系统、电子设备及存储介质,旨在能够及时识别其他对象对数据库的不合法操作,减小数据被篡改的风险,提高数据安全性。
56.本技术实施例提供的数据变更处理方法和系统、电子设备及存储介质,具体通过
如下实施例进行说明,首先描述本技术实施例中的数据变更处理方法。
57.本技术实施例提供的数据变更处理方法,涉及信息安全技术领域。本技术实施例提供的数据变更处理方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现数据变更处理方法的应用等,但并不局限于以上形式。
58.需要说明的是,在本技术的各个具体实施方式中,当涉及到需要根据对象信息、对象行为数据,对象历史数据以及对象位置信息等与对象身份或特性相关的数据进行相关处理时,都会先获得对象的许可或者同意,而且,对这些数据的收集、使用和处理等,都会遵守相关法律法规和标准。此外,当本技术实施例需要获取对象的敏感个人信息时,会通过弹窗或者跳转到确认页面等方式获得对象的单独许可或者单独同意,在明确获得对象的单独许可或者单独同意之后,再获取用于使本技术实施例能够正常运行的必要的对象相关数据。
59.本技术可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本技术可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本技术,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
60.图1是本技术实施例提供的数据变更处理方法的一个可选的流程图,图1中的方法可以包括但不限于包括步骤s101至步骤s103。
61.步骤s101,获取目标数据库中被写入目标日志的数据变更信息,其中,目标日志是二进制日志;
62.步骤s102,通过预设的日志监听器对数据变更信息进行事件监听,得到数据变更信息对应的事件类型;
63.步骤s103,根据事件类型和预设的事件策略信息对数据变更信息对应的事件进行处理。
64.在一些实施例的步骤s101中,获取可以是根据预设时间间隔进行获取,也可以当数据变更信息发生变化时获取。目标数据库可以是一个,也可以是多个。其中,数据库可以是mysql中的数据库,也可以是oracle中的数据库。以mysql为例,目标日志可以是binlog,是二进制日志,其中,binlog记录的是数据库表结构变更及表数据修改的信息,即数据变更信息。
65.在一些实施例的步骤s102中,预设的日志监听器可以是mysql-binlog-co nnector,也可以是canal,还可以是其他类型的日志监听器,不做限制。数据变更信息对应的事件类型可以是“数据新增”,可以是“数据更新”,也可以是“数据删除”,具体事件类型按
实际情况进行分类,在此不做限制。其中,由于binlog日志是以事件为单位进行存储,因此,通过日志监听器能够对数据变更信息进行事件监听,将每一数据变更信息与事件类型进行对应,即为每一数据变更信息打上类型标签。
66.在一些实施例的步骤s103中,预设的事件策略信息可以是针对每一事件类型作出不同的应对策略,而根据事件类型可以对事件策略信息进行查表操作,得到该事件类型对应的事件策略信息,并根据对应的事件策略信息对事件进行处理。
67.本技术实施例所示意的步骤s101至步骤s103,通过获取目标数据库中被写入目标日志的数据变更信息,其中,目标日志是二进制日志,能够快速并及时获取数据变更信息。进一步地,通过预设的日志监听器对数据变更信息进行事件监听,得到数据变更信息对应的事件类型,通过监听能够及时识别其他对象所执行的数据增加、更新和删除操作,并得到对应的事件类型。进一步地,根据事件类型和预设的事件策略信息对数据变更信息对应的事件进行处理,能够针对不同的事件类型,识别出不合法的操作,还能将数据恢复原状,以此减小数据被篡改的风险,提高数据安全性。
68.请参阅图2,在一些实施例的步骤s101之前,数据变更处理方法还可以包括但不限于包括步骤s201至步骤s202:
69.步骤s201,确定第一配置信息;
70.步骤s202,根据第一配置信息修改目标数据库的配置文件,以触发开启目标日志的日志服务。
71.在一些实施例的步骤s201中,首先确定是否打开了binlog日志服务,若binlog日志服务没有开启,则需要确定开启binlog日志的第一配置信息。其中,第一配置信息为“server-id=1;log-bin=mysql-bin;binlog_format=row”,这其中,server-id用于标识数据库实例;log-bin用于指定文件名称;binlog_format用于指定文件格式,其中,binlog的文件格式包括row、statement和mixed,row格式记录的是数据行的修改情况,statement格式记录的是执行的sql语句,mixed格式混合row格式和statement格式,在mixed格式下mysql会根据执行的sql语句自动选择使用row格式或者statement格式;而在row格式下,遇到进行数据同步或者恢复时不一致的情况会比其他两种格式更容易发现。以statement格式举例,由于记录的是执行的sql语句,若使用了获取时间的函数,在恢复时,获取的当前时间与原本的当前时间是不同的。
72.在一些实施例的步骤s202中,在确定了第一配置信息之后,将第一配置信息添加进配置文件my.ini/my.cnf,即对目标数据库的配置文件进行修改。如果目标数据库为一个,则还需在配置文件中添加配置“binlog-do-db=db_name”,其中,db_name指的是目标数据库的名称,其目的是只对指定目标数据库开启binlog日志服务。
73.通过上述步骤s201至步骤s202能够通过修改数据库的配置文件实现对指定目标数据库的数据变更进行记录,以使能够快速并及时获取数据变更信息。
74.请参阅图3,在一些实施例的步骤s102之前,数据变更处理方法还可以包括但不限于包括步骤s301至步骤s303:
75.步骤s301,基于指定的项目名和包名,创建项目;
76.步骤s302,将预设的第二配置信息添加至项目的配置文件,其中,所述配置文件用于为所述项目配置所述日志监听器;
77.步骤s303,基于项目中新建的类连接日志监听器和目标日志。
78.在一些实施例中,可以用mysql-binlog-connector,也可以用canal。
79.在将mysql-binlog-connector作为日志监听器的情况下,
80.步骤s301中,创建项目可以是springboot项目,可以使用idea工具或者在springboot官网在线创建。其中,项目名和包名可以自定义。
81.步骤s302中,预设的第二配置信息包括springboot的相关包、mysql-binlog-connector-java包和数据库配置信息。其中,springboot的相关包和mysql-binlog-connector-java包是引入到配置文件pom.xml中;数据库配置信息是需要加入到配置文件application.yml中。具体地,数据库配置信息为“datasource:
82.host:127.0.0.1
83.port:3306
84.username:root
85.password:root
86.serverid:1”,其中,参数的具体值按实际情况设置。
87.步骤s303中,在项目中新建一个类,继承applicationrunner方法,对该方法进行重写。假设重写的方法命名为run,在run方法中编写mysql-binlog-connector连接binlog的代码。
88.在将canal作为日志监听器的情况下,
89.步骤s301中,创建项目可以是springboot项目,可以使用idea工具或者在springboot官网在线创建。其中,项目名和包名可以自定义。与mysql-binlog-connector不同的是,canal需要伪装为mysql的从节点,因此,mysql需要创建一个账号作为从节点账号配置给canal。
90.步骤s302中,预设的第二配置信息包括springboot的相关包、canal.client包、数据库配置信息和canal部署配置信息。其中,springboot的相关包和canal.client包是引入到配置文件pom.xml中;数据库配置信息是需要加入到配置文件application.yml中;canal部署配置信息是需要加入到配置文件conf/example/instance.properties中,其中,canal部署配置信息包括目标数据库ip地址以及端口号、目标数据库的登录用户名和登录密码、需要监听的数据库表等。
91.步骤s303中,在项目中新建一个类,继承commandlinerunner方法,对该方法进行重写。假设重写的方法命名为run,在run方法中编写canal连接binlog的代码。
92.通过上述步骤s301至步骤s303能够采用不同的日志监听器,基于不同的配置与数据库进行连接,实现对目标数据库进行监听的效果。
93.请参阅图4,在一些实施例中,步骤s103可以包括但不限于包括步骤s401至步骤s404:
94.步骤s401,若数据变更信息对应的事件类型为数据新增,则获取新增数据,并对新增数据进行加密,得到加密数据;
95.步骤s402,对加密数据进行编码,得到目标字符串;
96.步骤s403,将目标字符串与预先存储的校验字符串进行比对,得到校验结果;
97.步骤s404,若校验结果表示目标字符串与校验字符串不一致,则确定新增数据为
不合法数据,并根据事件策略信息进行事件处理。
98.在一些实施例的步骤s401中,加密算法可以是hmacsha256算法。当监听到事件类型为数据新增时,从数据变更信息中获取新增数据内容,利用hmacsha256算法对新增数据内容进行加密,得到新增数据内容对应的加密数据。其中,数据新增可以通过识别数据库的插入语句进行判断,例如insert语句。
99.在一些实施例的步骤s402中,编码算法可以是base64算法,也可以是其他算法,不做限制。以编码算法为base64算法为例,利用base64算法对加密数据进行编码,得到加密数据的编码结果,即目标字符串。
100.在一些实施例的步骤s403中,预先存储的校验字符串可以是在新增数据插入之前,对新增数据进行加密和编码得到的,其中,校验字符串的获取过程和目标字符串的获取过程一致。在获取到目标字符串和校验字符串之后,将两者进行比对,得到校验结果。校验结果包括目标字符串与校验字符串不一致、目标字符串与校验字符串一致两种情况。
101.在一些实施例的步骤s404中,当校验结果表示目标字符串与校验字符串一致时,新增数据为合法数据。当校验结果表示目标字符串与校验字符串不一致时,确定新增数据为不合法数据,并根据事件类型对应的事件策略信息进行事件处理。其中,事件处理包括业务处理和发出告警。业务处理是当数据变更处理方法应用的系统识别到不合法数据时,需要作出相应的处理来减少不合法数据的影响,具体的处理方式根据实际需求确定。例如,对于不合法的新增数据,若是不希望被对象看见,系统可以记录不合法的新增数据的唯一标识,在对象进行查询的时候基于记录的唯一标识筛掉不合法的新增数据。其次,发出告警是系统识别到不合法数据时,能够通过短信、邮件等方式通知系统的维护人员,以便维护人员能及时知晓,也能及时排查并解决不合法操作问题。
102.通过上述步骤s401至步骤s404能够对数据新增这一事件类型进行针对性处理,能通过比对目标字符串与校验字符串判断新增的数据是否是合法数据,当新增的数据是不合法数据时,能够通过记录、隐藏等手段减小数据被篡改的风险,提高数据安全性。
103.请参阅图5,在一些实施例的步骤s103之前,数据变更处理方法还可以包括但不限于包括步骤s501至步骤s506:
104.步骤s501,响应于对象的数据存储请求,接收待存储的目标数据;
105.步骤s502,根据目标数据的字段名对目标数据进行排序,得到数据序列;
106.步骤s503,根据url键值对的格式对数据序列中的目标数据进行拼接,得到初步字符串;
107.步骤s504,基于预设密钥对初步字符串进行签名处理,得到签名信息;
108.步骤s505,对签名信息进行编码处理,得到编码信息;
109.步骤s506,将编码信息作为校验字符串,并将校验字符串与目标数据写入目标数据库。
110.在一些实施例的步骤s501中,在对象请求将数据插入数据库后,接收需要插入的数据,其中,数据插入请求即数据存储请求,需要插入的数据即待存储的目标数据。
111.在一些实施例的步骤s502中,字段名是指在以关系模型为数据结构的二维表中每一列的标识,而目标数据中的数据会与数据库中表的字段一一对应。根据目标数据对应的表的字段名对目标数据进行排序,得到字段名序列,基于字段名与目标数据的对应关系也
能得到目标数据的数据序列。其中,排序方法可以是按照字段名的ascii码从小到大的方式进行排序,也可以是按照字段名的ascii码从大到小的方式进行排序。
112.在一些实施例的步骤s503中,url键值对的格式指的是key1=value1&key2=value2&key3=value3
…
&keyn=valuen,其中n表示第n个字段名。根据url键值对的格式对数据序列中的目标数据与字段名进行拼接,则url键值对的键为字段名,url键值对的值为与字段名对应的数据,而键的顺序可以根据字段名序列进行排序,由此得到的字符串为初步字符串。
113.例如,字段名有“studentid、name、sex”,与之对应的目标数据存在“20003125、张三、男”。其中,studentid对应的ascii码为“\u0073\u0074\u0075\u0064\u0065\u006e\u0074\u0069\u0064”,name对应的ascii码为“\u006e\u0061\u006d\u0065”,sex对应的ascii码为“\u0073\u0065\u0078”,首先对各字段的第一个字母根据ascii码从小到大进行排序,由于\u0073小于\u006e,能够确定name在字段名序列中的排序为1;其次,由于studentid与sex的第一个字母的ascii码相同,则对studentid与sex的第二个字母根据as cii码从小到大进行排序,由于\u0074大于\u0065,能够确定sex在字段名序列中的排序为2;最后,得到字段名序列为“name、sex、studentid”。基于字段名序列能够得到数据序列,该数据序列为“张三、男、20003125”。将字段名作为键,目标数据的数据作为值,基于字段名序列的顺序,能够得到url键值对的格式为“name=张三&sex=男&studentid=20003125”,即初步字符串。
114.在一些实施例的步骤s504中,若采用hmacsha256算法进行加密,则预设密钥可以为通过随机数生成器得到的256位的随机数。使用密钥对初步字符串进行hmacsha256签名,得到长度为256位的散列值,该散列值为签名信息。
115.在一些实施例的步骤s505中,可以通过base64算法对签名信息进行编码处理,得到编码信息。
116.在一些实施例的步骤s506之前,需要对指定的数据库的表设计加密字段。其中,指定的数据库的表即需要对新增数据进行检测的表。加密字段的字段名可以是sign,类型为字符串varchar,长度可根据使用的加密算法确定。例如,采用hmacsha256算法,首先使用256位的密钥加密后会生成32字节的数组;其次,经过base64编码,得到的编码信息会固定为44位,这是因为base64编码后的每4个字符表示编码前原文3个字节的内容,如果编码前原文所占字节不足3的倍数则会补齐,即32字节会补齐为33字节,经过base64编码后就是44位。因此,加密字段的长度不能小于44位,又因为mysql的性能更适用于长度为2的指数倍的数据,所以,将加密字段的长度设置为64位的效果是更好的。
117.需要注意的是,在对字段名进行ascii码排序以及对新增数据进行加密编码时不考虑加密字段。
118.在一些实施例的步骤s506中,将编码信息作为校验字符串,并且将校验字符串与目标数据写入目标数据库。其中,将校验字符串作为加密字段的内容,通过插入语句与目标数据一起添加进表里。
119.通过上述步骤s501至步骤s506能够响应于对象的数据存储请求,接收待存储的目标数据,能根据预定的规则得到与目标数据对应的校验字符串,并且将校验字符串与目标数据写入目标数据库,为后续将校验字符串与目标字符串进行比对以实现校验效果提供了
基础,进一步地提高了数据的安全性。
120.请参阅图6,在一些实施例,步骤s103包括但不限于包括步骤s601至步骤s603:
121.步骤s601,若数据变更信息对应的事件类型为数据更新,则确定被更新的数据;
122.步骤s602,若被更新的数据包含不允许更新的字段或者表,则确定事件为异常更新事件;
123.步骤s603,根据事件策略信息对异常更新事件进行事件处理。
124.在一些实施例中,可以使用数据库的触发器在更新数据前对数据进行基础的校验,当基础校验通过再进行数据更新。其中,基础校验包括数据类型校验、约束校验、默认值校验和唯一值校验等。
125.在一些实施例的步骤s601中,当监听到事件类型为数据更新时,则可以从binlog日志中确定被更新的数据,以及数据被更新之前的数据。其中,被更新的数据可以是数据库的表中的一行或多行记录,可以是表中某个字段值。另外,数据更新可以通过识别数据库的更新语句进行判断,例如update语句。
126.在一些实施例的步骤s602中,不允许更新的字段或表可以按照实际业务需求预先确定。当不允许更新的字段或者表被更新,则可以确定此次数据更新操作为不合法更新操作,即异常更新事件。相对地,对于合法的更新操作,不做处理。
127.在一些实施例的步骤s603中,当存在异常更新事件时,通过对事件策略信息进行查表操作,找到相应的处理方式。其中,事件处理包括业务处理和发出告警,这与数据新增的事件处理相似,但具体的处理方式要根据实际需求确定。例如,数据更新的业务处理可以是将数据还原为更新之前的状态。而对于更新了不允许更新的字段或者表,或者更新数据后的签名信息不正确时,都会发出告警,以及时提醒维护人员尽快处理。
128.通过上述步骤s601至步骤s603能够对数据更新这一事件类型进行针对性处理,能通过确定被更新的数据是否包含不允许更新的字段或者表,以判断数据更新操作是否是合法操作,当此次数据更新操作是不合法操作时,能够通过还原数据的方式减小数据被篡改的风险,提高数据安全性。
129.请参阅图7,在一些实施例中,步骤s103可以包括但不限于包括步骤s701至步骤s703:
130.步骤s701,若数据变更信息对应的事件类型为数据删除,则确定被删除的数据;
131.步骤s702,若被删除的数据包含不允许删除的字段或者表,则确定事件为异常删除事件;
132.步骤s703,根据事件策略信息对异常删除事件进行事件处理。
133.在一些实施例的步骤s701中,当监听到事件类型为数据删除时,则可以从binlog日志中确定被删除的数据。其中,被删除的数据可以是一行或多行记录,可以是某个字段值,也可以是一个关系表。另外,数据删除可以通过识别数据库的删除语句进行判断,例如delete语句。
134.在一些实施例的步骤s702中,不允许删除的字段或表可以按照实际业务需求预先确定。当不允许删除的字段或者表被删除,则可以确定此次数据删除操作为不合法删除操作,即异常删除事件。相对地,对于合法删除操作,不做处理。
135.在一些实施例的步骤s703中,当存在异常删除事件时,通过对事件策略信息进行
查表操作,找到相应的处理方式。其中,事件处理包括业务处理和发出告警,这与数据新增的事件处理相似,但具体的处理方式要根据实际需求确定。例如,数据删除的业务处理可以是将数据还原为删除之前的状态,也可以将数据备份在其他表或者缓存中。而对于删除了不允许删除的字段或者表,都会发出告警,以及时提醒维护人员尽快处理。例如,预先确定了只允许删除3个月之前的数据,当被删除的数据包括3个月之内的数据的情况下,此次数据删除操作被确定为异常删除事件。
136.通过上述步骤s701至步骤s703能够对数据删除这一事件类型进行针对性处理,能通过确定被删除的数据是否包含不允许删除的字段或者表,以判断数据删除操作是否是合法操作,当此次数据删除操作是不合法操作时,能够通过还原数据或者备份数据的方式减小数据被篡改的风险,提高数据安全性。
137.请参阅图8,本技术实施例还提供一种数据变更处理系统,可以实现上述数据变更处理方法,该系统包括:
138.数据获取模块,用于获取目标数据库中被写入目标日志的数据变更信息,其中,目标日志是二进制日志;
139.事件监听模块,用于通过预设的日志监听器对数据变更信息进行事件监听,得到数据变更信息对应的事件类型;
140.业务处理模块,用于根据事件类型和预设的事件策略信息对数据变更信息对应的事件进行处理。
141.该数据变更处理系统的具体实施方式与上述数据变更处理方法的具体实施例基本相同,在此不再赘述。
142.本技术实施例还提供了一种电子设备,电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述数据变更处理方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
143.请参阅图9,图9示意了另一实施例的电子设备的硬件结构,电子设备包括:
144.处理器901,可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本技术实施例所提供的技术方案;
145.存储器902,可以采用只读存储器(read only memory,rom)、静态存储设备、动态存储设备或者随机存取存储器(random access memory,ram)等形式实现。存储器902可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器902中,并由处理器901来调用执行本技术实施例的数据变更处理方法;
146.输入/输出接口903,用于实现信息输入及输出;
147.通信接口904,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信;
148.总线905,在设备的各个组件(例如处理器901、存储器902、输入/输出接口903和通信接口904)之间传输信息;
149.其中处理器901、存储器902、输入/输出接口903和通信接口904通过总线905实现彼此之间在设备内部的通信连接。
150.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述数据变更处理方法。
151.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
152.本技术实施例提供的数据变更处理方法、数据变更处理系统、电子设备及存储介质,其通过获取目标数据库中被写入目标日志的数据变更信息,其中,目标日志是二进制日志,能够快速并及时获取数据变更信息。进一步地,通过预设的日志监听器对数据变更信息进行事件监听,得到数据变更信息对应的事件类型,通过监听能够及时识别其他对象所执行的数据增加、更新和删除操作,并得到对应的事件类型。进一步地,根据事件类型和预设的事件策略信息对数据变更信息对应的事件进行处理,能够针对不同的事件类型,识别出不合法的操作,还能将数据恢复原状,以此减小数据被篡改的风险,提高数据安全性。
153.本技术实施例描述的实施例是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
154.本领域技术人员可以理解的是,图中示出的技术方案并不构成对本技术实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
155.以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
156.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
157.本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
158.应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
159.在本技术所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
160.上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
161.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
162.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例的方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序的介质。
163.以上参照附图说明了本技术实施例的优选实施例,并非因此局限本技术实施例的权利范围。本领域技术人员不脱离本技术实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本技术实施例的权利范围之内。
技术特征:
1.一种数据变更处理方法,其特征在于,所述方法包括:获取目标数据库中被写入目标日志的数据变更信息,其中,所述目标日志是二进制日志;通过预设的日志监听器对所述数据变更信息进行事件监听,得到所述数据变更信息对应的事件类型;根据所述事件类型和预设的事件策略信息对所述数据变更信息对应的事件进行处理。2.根据权利要求1所述的一种数据变更处理方法,其特征在于,在所述获取目标数据库中被写入目标日志的数据变更信息之前,所述方法还包括:确定第一配置信息;根据所述第一配置信息修改所述目标数据库的配置文件,以触发开启所述目标日志的日志服务。3.根据权利要求1所述的一种数据变更处理方法,其特征在于,在所述通过预设的日志监听器对所述数据变更信息进行事件监听,得到所述数据变更信息对应的事件类型之前,所述方法还包括:基于指定的项目名和包名,创建项目;将预设的第二配置信息添加至所述项目的配置文件,其中,所述配置文件用于为所述项目配置所述日志监听器;基于所述项目中新建的类连接所述日志监听器和所述目标日志。4.根据权利要求1所述的一种数据变更处理方法,其特征在于,所述根据所述事件类型和预设的事件策略信息对所述数据变更信息对应的事件进行处理,包括:若所述数据变更信息对应的事件类型为数据新增,则获取新增数据,并对所述新增数据进行加密,得到加密数据;对所述加密数据进行编码,得到目标字符串;将所述目标字符串与预先存储的校验字符串进行比对,得到校验结果;若所述校验结果表示所述目标字符串与所述校验字符串不一致,则确定所述新增数据为不合法数据,并根据所述事件策略信息进行事件处理。5.根据权利要求4所述的一种数据变更处理方法,其特征在于,在所述根据所述事件类型和预设的事件策略信息对所述数据变更信息对应的事件进行处理之前,所述方法还包括:响应于对象的数据存储请求,接收待存储的目标数据;根据所述目标数据的字段名对所述目标数据进行排序,得到数据序列;根据url键值对的格式对所述数据序列中的目标数据进行拼接,得到初步字符串;基于预设密钥对所述初步字符串进行签名处理,得到签名信息;对所述签名信息进行编码处理,得到编码信息;将所述编码信息作为所述校验字符串,并将所述校验字符串与所述目标数据写入所述目标数据库。6.根据权利要求1所述的一种数据变更处理方法,其特征在于,所述根据所述事件类型和预设的事件策略信息对所述数据变更信息对应的事件进行处理,包括:若所述数据变更信息对应的事件类型为数据更新,则确定被更新的数据;
若所述被更新的数据包含不允许更新的字段或者表,则确定所述事件为异常更新事件;根据所述事件策略信息对所述异常更新事件进行事件处理。7.根据权利要求1所述的一种数据变更处理方法,其特征在于,所述根据所述事件类型和预设的事件策略信息对所述数据变更信息对应的事件进行处理,包括:若所述数据变更信息对应的事件类型为数据删除,则确定被删除的数据;若所述被删除的数据包含不允许删除的字段或者表,则确定所述事件为异常删除事件;根据所述事件策略信息对所述异常删除事件进行事件处理。8.一种数据变更处理系统,其特征在于,所述系统包括:数据获取模块,用于获取目标数据库中被写入目标日志的数据变更信息,其中,所述目标日志是二进制日志;事件监听模块,用于通过预设的日志监听器对所述数据变更信息进行事件监听,得到所述数据变更信息对应的事件类型;业务处理模块,用于根据所述事件类型和预设的事件策略信息对所述数据变更信息对应的事件进行处理。9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的一种数据变更处理方法。10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的一种数据变更处理方法。
技术总结
本申请实施例提供了一种数据变更处理方法和系统、电子设备及存储介质,属于信息安全技术领域。该方法包括:获取目标数据库中被写入目标日志的数据变更信息,其中,目标日志是二进制日志;通过预设的日志监听器对数据变更信息进行事件监听,得到数据变更信息对应的事件类型;根据事件类型和预设的事件策略信息对数据变更信息对应的事件进行处理。本申请实施例能够及时识别其他对象对数据库的不合法操作,减小数据被篡改的风险,提高数据安全性。提高数据安全性。提高数据安全性。
技术研发人员:薛云锋 林晖 周晓鑫 韦余红
受保护的技术使用者:深圳市新国都支付技术有限公司
技术研发日:2023.06.06
技术公布日:2023/10/11
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:卷针机构的制作方法 下一篇:一种耳机头带的制作方法、耳机头带和耳机与流程