一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种日志掩码方法及装置与流程

2022-09-15 03:25:21 来源:中国专利 TAG:


1.本技术涉及数据处理领域,具体而言,涉及一种日志掩码方法及装置。


背景技术:

2.为保护个人客户及企业信息,规避个人及企业信息在业务系统的泄漏和被滥用的风险。现有技术中通常会了参考法律法规、监管部门、集团及银行安全标准中相关掩码屏蔽的规定,开展敏感信息日志的掩码工作。
3.然而,传统的掩码工作大部分都是工作人员直接在代码里面对某一段日志打印的方法特定做掩码。可见,传统的方法中需要依靠人工在大段代码中查看需要掩码的地方,然后一段一段去改造,从而导致了日志掩码工作过于繁琐、浪费人力,并且还容易漏掉一些需要掩码的地方,进而降低了掩码的效率,增加了掩码的失误率。


技术实现要素:

4.本技术实施例的目的在于提供一种日志掩码方法及装置,能够通过基类集成的方式规避传统繁琐的掩码工作方式,从而保障掩码的精度,并能够大大减少开发的工作量。
5.本技术实施例第一方面提供了一种日志掩码方法,包括:
6.获取待掩码日志;
7.在配置中心获取敏感字段名称;所述敏感字段名称至少包括账号类敏感字段名称、名称类敏感字段名称和业务类敏感字段名称;
8.根据日志掩码基类,判断所述待掩码日志中是否包括与所述敏感字段名称相匹配的待掩码字段;
9.当所述待掩码日志中包括所述待掩码字段时,根据预设的掩码规则对所述待掩码字段进行掩码,得到掩码日志。
10.实施这种实施方式,能够基于日志掩码基类提供统一的日志掩码入口,从而避免开发人员对每个打印日志的代码部分进行日志掩码操作,进而大大减少开发的工作量。同时,采用该种掩码方法对于存量系统的日志掩码改造工作的侵入性最小,代码改造量最低,从而能够大大降低存量系统日志掩码改造工作带来的其他风险。
11.进一步地,所述获取待掩码日志的步骤之后,所述方法还包括:
12.监听配置中心的敏感字段名称是否发生更新;
13.当所述敏感字段名称发生更新时,获取更新后的所述敏感字段名称,并执行所述根据日志掩码基类,判断所述待掩码日志中是否包括与所述敏感字段名称相匹配的待掩码字段的步骤;
14.当所述敏感字段名称未发生更新时,执行所述在配置中心获取敏感字段名称的步骤。
15.实施这种实施方式,该方法能够通过监听配置中心的配置修改情况,动态地调整日志掩码的规则,从而不再需要专门为了某个字段的掩码,去专门创建一个生产版本去做
改造,降低了项目预算与人力。
16.进一步地,所述根据日志掩码基类,判断所述待掩码日志中是否包括与所述敏感字段名称相匹配的待掩码字段的步骤包括:
17.根据日志掩码基类,遍历判断所述待掩码日志中是否包括与所述账号类敏感字段名称、所述名称类敏感字段名称和所述业务类敏感字段名称任一敏感字段名称相匹配的待掩码字段。
18.进一步地,所述根据预设的掩码规则对所述待掩码字段进行掩码,得到掩码日志的步骤包括:
19.根据预设的掩码规则对所述待掩码字段进行掩码,得到掩码字段;
20.基于所述掩码字段进行日志组装,得到掩码日志。
21.进一步地,所述在配置中心获取敏感字段名称的步骤之前,所述方法还包括:
22.通过拦截器拦截数据库框架中的sql的入参映射表;并关闭所述数据库框架中的sql日志打印;
23.遍历所述入参映射表,获取入参字段名称和入参字段值;
24.根据所述入参字段名称和所述入参字段值,确定待掩码日志。
25.实施这种实施方式,能够解决mybatis等底层框架的sql日志无法掩码的问题,使得sql操作日志的掩码逻辑自主可控。
26.本技术实施例第二方面提供了一种日志掩码装置,所述日志掩码装置包括:
27.第一获取单元,用于获取待掩码日志;
28.第二获取单元,用于在配置中心获取敏感字段名称;所述敏感字段名称至少包括账号类敏感字段名称、名称类敏感字段名称和业务类敏感字段名称;
29.判断单元,用于根据日志掩码基类,判断所述待掩码日志中是否包括与所述敏感字段名称相匹配的待掩码字段;
30.掩码单元,用于当所述待掩码日志中包括所述待掩码字段时,根据预设的掩码规则对所述待掩码字段进行掩码,得到掩码日志。
31.进一步地,所述日志掩码装置还包括:
32.监听单元,用于监听配置中心的敏感字段名称是否发生更新;
33.所述第二获取单元,具体用于当所述敏感字段名称发生更新时,获取更新后的所述敏感字段名称,并触发所述判断单元执行所述根据日志掩码基类,判断所述待掩码日志中是否包括与所述敏感字段名称相匹配的待掩码字段的操作;
34.所述第二获取单元,具体还用于当所述敏感字段名称未发生更新时,在配置中心获取敏感字段名称。
35.进一步地,所述判断单元具体用于根据日志掩码基类,遍历判断所述待掩码日志中是否包括与所述账号类敏感字段名称、所述名称类敏感字段名称和所述业务类敏感字段名称任一敏感字段名称相匹配的待掩码字段。
36.本技术实施例第三方面提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本技术实施例第一方面中任一项所述的日志掩码方法。
37.本技术实施例第四方面提供了一种计算机可读存储介质,其存储有计算机程序指
令,所述计算机程序指令被一处理器读取并运行时,执行本技术实施例第一方面中任一项所述的日志掩码方法。
附图说明
38.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
39.图1为本技术实施例提供的一种日志掩码方法的流程示意图;
40.图2为本技术实施例提供的一种日志掩码装置的结构示意图;
41.图3为本技术实施例提供的一种掩码实现的流程示意图。
具体实施方式
42.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
43.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
44.实施例1
45.请参看图1,图1为本实施例提供了一种日志掩码方法的流程示意图。其中,该日志掩码方法包括:
46.s101、获取待掩码日志。
47.本实施例中,该方法可以任何敏感信息日志,并将该敏感信息日志确定为待掩码日志,然后再执行后续的流程。
48.本实施例中,该方法可以基于mybatis、mybatisplus等数据库框架获取sql日志,并基于sql日志提取相关的入参字段名称和入参字段值进行日志掩码与原始sql日志打印禁用,从而输出掩码后的日志。具体请参阅下述可选的实施方式。
49.作为一种可选的实施方式,获取待掩码日志的步骤包括:
50.通过拦截器拦截数据库框架中的sql的入参映射表;并关闭数据库框架中的sql日志打印;
51.遍历入参映射表,获取入参字段名称和入参字段值;
52.根据入参字段名称和入参字段值,确定待掩码日志。
53.本实施例中,因为基于mybatis、mybatisplus等数据库框架的系统会自动打印sql日志,所以开发人员往往无法直接去干预这部分sql日志的掩码。为此,该方法自定义一个mybatissqlloginterceptor的拦截器,用于拦截statementhandler对象的update、query方法。其中,statementhandler是mybatis的主要的核心部件之一,该部件封装了jdbc statement操作,负责对jdbc statement的操作,如设置参数、将statement结果集转换成list集合等。首先,该方法可以从statementhandler对象中,获取boundsql对象,boundsql也是mybatis的主要的核心部件之一,用于表示动态生成的sql语句以及相应的参数信息。然后,再从boundsql对象中获取该条sql的入参parametermapping列表,我们只要遍历
parametermapping列表,拿到每个入参的字段名称和字段值,传入到我们定义的routingjsontostringstyle日志掩码基类里面去做掩码,便可以进行掩码操作。并在掩码完成之后,该方法还可以在这个拦截器里面,打印掩码之后的sql日志。与此同时,该方法可以关闭mybatis底层框架自动打印的sql日志的功能,从而保证只输出掩码日志。
54.s102、监听配置中心的敏感字段名称是否发生更新,若是,则执行步骤s103;若否,则执行步骤s104~s105。
55.本技术实施例中,该配置中心具体可以为apollo配置中心等配置平台,对此本技术实施例不作限定。
56.本实施例中,该方法可以定义一个logsensitivecolumnconfig对象,并使用@configchangelistener注解,来监听配置中心的敏感字段名称是否改变,只要配置中心里user、name、biz这三个对象中的敏感字段名称发生了改变,该方法便可以自动地实时更新这三个set对象。
57.在本实施例中,配置方式如下:
58.route.log.sensitive.columns.user=payeracc,payeeacc,realpayeracc;
59.route.log.sensitive.columns.name=realpayername,realpayeename;
60.route.log.sensitive.columns.biz=uppretstatusmsg,addmsg。
61.s103、在配置中心获取更新后的敏感字段名称,并执行步骤s105。
62.本实施例中,敏感字段名称至少包括账号类敏感字段名称、名称类敏感字段名称和业务类敏感字段名称。
63.s104、在配置中心获取敏感字段名称。
64.本实施例中,敏感字段名称至少包括账号类敏感字段名称、名称类敏感字段名称和业务类敏感字段名称。
65.本实施例中,该方法可以routingjsontostringstyle日志掩码基类里面,定义三个set对象user、name、biz,分别用来存放账号类敏感字段名称、名称类敏感字段名称、业务类敏感字段名称。每次在系统初始化的时候,都可以从配置中心里面分别获取这三个敏感字段名称来初始化三个set对象。可见,该方法可以使开发人员在对掩码对象进行调整时,只调整配置中心的三个set对象即可,从而避免了对新增字段进行特意的掩码。
66.s105、根据日志掩码基类,判断待掩码日志中是否包括与敏感字段名称相匹配的待掩码字段,若是,则执行步骤s106~s107;若否,则结束本流程。
67.本实施例中,该方法可以自定义日志掩码基类(又称敏感信息日志脱敏基类)routingjsontostringstyle。
68.在本实施例中,该方法可以设置敏感信息日志脱敏基类去继承org.apache.commons.lang3.builder.tostringstyle,从而使得系统中的所有的java对象都可以重写tostring方法,举例如下:
69.public string tostring(){return tostringbuilder.reflectiontostring(this,routingjsontostringstyle.nupp_json_style);}。
70.作为一种可选的实施方式,根据日志掩码基类,判断待掩码日志中是否包括与敏感字段名称相匹配的待掩码字段的步骤包括:
71.根据日志掩码基类,遍历判断待掩码日志中是否包括与账号类敏感字段名称、名
称类敏感字段名称和业务类敏感字段名称任一敏感字段名称相匹配的待掩码字段。
72.本实施例中,该方法中的routingjsontostringstyle日志掩码基类里面具有重写tostringstyle的appenddetail方法。该方法是java对象tostring打印日志的主要方法,用来组装日志信息。具体的,该方法在重写该方法的时候,分别遍历user、name、biz三个set对象,查看当前要组装的日志字段,是否命中了我们配置的需要掩码的字段。如果命中了,则按照命中的set的规则,去做该字段的值的日志掩码。
73.举例来说,要打印的是payeracc字段的日志是,会命中user这个set,然后就会按照账号的掩码规则去做掩码即可(比如只留前3位后3位,中间可以用于*号替换)。
74.s106、根据预设的掩码规则对待掩码字段进行掩码,得到掩码字段。
75.s107、基于掩码字段进行日志组装,得到掩码日志。
76.请参阅图3,图3示出了一种掩码实现的流程示意图。基于该流程示意图的具体解释说明可以参照步骤s101~s107,此处便不进行赘述。
77.本实施例中,该方法的执行主体可以为计算机、服务器等计算装置,对此本实施例中不作任何限定。
78.在本实施例中,该方法的执行主体还可以为智能手机、平板电脑等智能设备,对此本实施例中不作任何限定。
79.可见,实施本实施例所描述的日志掩码方法,能够提供了一个统一的日志掩码入口,使得开发人员不需要单独在每个打印日志的地方去做日志掩码操作,而只需要在每个java对象的tostring方法重新引入routingjsontostringstyle就行,基于该种方式能够大大减少开发的工作量。同时,该种方法对于存量系统的日志掩码改造工作的侵入性最小,代码改造量最低,还能够大大降低存量系统日志掩码改造工作带来的其他风险。然后,该方法还能够通过修改配置中心的存储信息,动态调整日志掩码的规则,从而不再需要专门为了某个字段的掩码去专门创建一个生产版本去做改造,进而能够降低项目预算与人力。另一方面,该方法还能够解决mybatis等底层框架的sql日志无法掩码的问题,从而使得sql操作日志的掩码逻辑自主可控。
80.实施例2
81.请参看图2,图2为本实施例提供的一种日志掩码装置的结构示意图。如图2所示,该日志掩码装置包括:
82.第一获取单元210,用于获取待掩码日志;
83.第二获取单元220,用于在配置中心获取敏感字段名称;敏感字段名称至少包括账号类敏感字段名称、名称类敏感字段名称和业务类敏感字段名称;
84.判断单元230,用于根据日志掩码基类,判断待掩码日志中是否包括与敏感字段名称相匹配的待掩码字段;
85.掩码单元240,用于当待掩码日志中包括待掩码字段时,根据预设的掩码规则对待掩码字段进行掩码,得到掩码日志。
86.作为一种可选的实施方式,日志掩码装置还包括:
87.监听单元250,用于监听配置中心的敏感字段名称是否发生更新;
88.第二获取单元220,具体用于当敏感字段名称发生更新时,获取更新后的敏感字段名称,并触发判断单元230执行根据日志掩码基类,判断待掩码日志中是否包括与敏感字段
名称相匹配的待掩码字段的操作;
89.第二获取单元220,具体还用于当敏感字段名称未发生更新时,在配置中心获取敏感字段名称。
90.作为一种可选的实施方式,判断单元230具体用于根据日志掩码基类,遍历判断待掩码日志中是否包括与账号类敏感字段名称、名称类敏感字段名称和业务类敏感字段名称任一敏感字段名称相匹配的待掩码字段。
91.作为一种可选的实施方式,掩码单元240包括:
92.掩码子单元241,用于根据预设的掩码规则对待掩码字段进行掩码,得到掩码字段;
93.组装子单元242,用于基于掩码字段进行日志组装,得到掩码日志。
94.作为一种可选的实施方式,第一获取单元210包括:
95.拦截子单元211,用于通过拦截器拦截数据库框架中的sql的入参映射表;并关闭数据库框架中的sql日志打印;
96.获取子单元212,用于遍历入参映射表,获取入参字段名称和入参字段值;
97.确定子单元213,用于根据入参字段名称和入参字段值,确定待掩码日志。
98.本技术实施例中,对于日志掩码装置的解释说明可以参照实施例1中的描述,对此本实施例中不再多加赘述。
99.可见,实施本实施例所描述的日志掩码装置,能够提供了一个统一的日志掩码入口,使得开发人员不需要单独在每个打印日志的地方去做日志掩码操作,而只需要在每个java对象的tostring方法重新引入routingjsontostringstyle就行,基于该种方式能够大大减少开发的工作量。同时,该种方法对于存量系统的日志掩码改造工作的侵入性最小,代码改造量最低,还能够大大降低存量系统日志掩码改造工作带来的其他风险。然后,该方法还能够通过修改配置中心的存储信息,动态调整日志掩码的规则,从而不再需要专门为了某个字段的掩码去专门创建一个生产版本去做改造,进而能够降低项目预算与人力。另一方面,该方法还能够解决mybatis等底层框架的sql日志无法掩码的问题,从而使得sql操作日志的掩码逻辑自主可控。
100.本技术实施例提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行本技术实施例1中的日志掩码方法。
101.本技术实施例提供了一种计算机可读存储介质,其存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行本技术实施例1中的日志掩码方法。
102.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每
个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
103.另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
104.所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
105.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
106.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
107.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献