首页 > 其他分享 >日志脱敏

日志脱敏

时间:2024-10-17 16:00:15浏览次数:6  
标签:内置 匹配 key 规则 position 日志 脱敏

1、引入Jar包依赖

前提是你将Jar包打入本地仓库,Jar包地址见后文。

<dependency>
    <groupId>pers.liuchengyin</groupId>
    <artifactId>logback-desensitization</artifactId>
    <version>1.0.0</version>
</dependency>



2、替换示例:

<property name="CONSOLE_LOG_PATTERN"
          value="%yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-5level) |%blue(%thread) |%blue(%file:%line) |%green(%logger) |%cyan(%msg%n)"/>

<!-- ConsoleAppender 控制台输出日志 -->
<appender name="CONSOLE" class="pers.liuchengyin.logbackadvice.LcyConsoleAppender">
    <encoder>
        <pattern>
            ${CONSOLE_LOG_PATTERN}
        </pattern>
    </encoder>
</appender>

3、添加脱敏配置文件(logback-desensitize.yml)

# 日志脱敏
log-desensitize:
  # 是否忽略大小写匹配,默认为true
  ignore: true
  # 是否开启脱敏,默认为false
  open: true
  # pattern下的key/value为固定脱敏规则
  pattern:
    # 邮箱 - @前第4-7位脱敏
    email: "@>(4,7)"
    # qq邮箱 - @后1-3位脱敏
    qqemail: "@<(1,3)"
    # 姓名 - 姓脱敏,如*杰伦
    name: 1,1
    # 密码 - 所有需要完全脱敏的都可以使用内置的password
    password: password
  patterns:
    # 身份证号,key后面的字段都可以匹配以下规则(用逗号分隔)
    - key: identity,idcard
      # 定义规则的标识
      custom:
        # defaultRegex表示使用组件内置的规则:identity表示身份证号 - 内置的18/15位
        - defaultRegex: identity
          position: 9,13
        # 内置的other表示如果其他规则都无法匹配到,则按该规则处理
        - defaultRegex: other
          position: 9,10
    # 电话号码,key后面的字段都可以匹配以下规则(用逗号分隔)
    - key: phone,cellphone,mobile
      custom:
        # 手机号 - 内置的11位手机匹配规则
        - defaultRegex: phone
          position: 4,7
        # 自定义正则匹配表达式:座机号(带区号,号码七位|八位)
        - customRegex: "^0[0-9]{2,3}-[0-9]{7,8}"
        # -后面的1-4位脱敏
          position: "-<(1,4)"
        # 自定义正则匹配表达式:座机号(不带区号)
        - customRegex: "^[0-9]{7,8}"
          position: 3,5
        # 内置的other表示如果其他规则都无法匹配到,则按该规则处理
        - defaultRegex: other
          position: 1,3
    # 这种方式不太推荐 - 一旦匹配不上,就不会脱敏
    - key: localMobile
      custom:
          customRegex: "^0[0-9]{2,3}-[0-9]{7,8}"
          position: 1,3

标签:内置,匹配,key,规则,position,日志,脱敏
From: https://www.cnblogs.com/KL2016/p/18472495

相关文章

  • 数据库事务处理中的日志文件(Log File)的作用和重要性
    错题考察的知识点是数据库事务处理中的日志文件(LogFile)的作用和重要性。日志文件在数据库管理系统(DBMS)中扮演着至关重要的角色,特别是在事务处理和系统恢复方面。以下是该知识点的相关内容和详细介绍:日志文件的作用:事务故障恢复:在事务处理过程中,DBMS会记录事务的开始、结束以......
  • Docker 安全及日志管理
    一、Docker容器与虚拟机的区别容器的安全性问题的根源在于容器和宿主机共享内核。如果容器里的应用导致Linux内核崩溃,那么整个系统可能都会崩溃。与虚拟机是不同的,虚拟机并没有与主机共享内核,虚拟机崩溃一般不会导致宿主机崩溃隔离与共享:虚拟机通过添加Hypervisor层(虚拟化中间......
  • 软件工程实践项目学习与执行日志
    软件工程实践项目学习与执行日志Vue3项目实践https://pan.baidu.com/s/1ZqjMxwZklZVYpB1ZbzEKKA&pwd=9987首先我一直不明白别人老说要学会git仓库,这个是干嘛的怎么用有何益处?github我知道你可以保存自己的项目与他人共享,其中含有许多双赢的道理。06.gitreset回退版本_哔哩哔......
  • 使用 CDN 后 Apache 的日志记录客户真实 IP
    经常搭建网站服务器的都知道,在给站点使用了CDN后Web应用的日志记录里就会只记录CDN节点IP了,这就没法看到真实客户请求IP,对于日志分析、运维日常维护来说就有点儿麻烦了,今天明月结合在五洛云服务器上搭建的Apache环境给大家分享一下让日志记录客户真实IP,毕竟网上的教......
  • 2024/10/16日工作日志
    复习英语单词80个;背写单词36个;完善栈地回文代码:includeincludeusingnamespacestd;intmain(){intlength;cin>>length;cin.ignore();//忽略长度输入后的换行符stringstr;//逐个字符输入字符串charch;boolhasSpace=false;for(inti=0;i<lengt......
  • Spring Cloud Gateway关键点全局Token过滤器,局部过滤器接口耗时,全链路跟踪TraceId日志
    一.全局Token过滤器在SpringCloudGateway中,实现全局过滤器的目的是对所有进入系统的请求或响应进行统一处理,比如添加日志、鉴权等。下面是如何创建一个全局过滤器的基本步骤:步骤1:创建过滤器类首先,你需要创建一个实现了GlobalFilter接口,创建一个全局token过滤器。@Slf......
  • 10.16学习日志
    一.Python函数1.定义一个函数什么是函数函数是可以重复执行的语句块,可以重复调用作用用于封装语句块,提高代码的重用性。函数是面向过程编程的最小单位1.1def语句作用用来定义(创建)函数语法说明函数代码块以def关键词开头,后接函数标识符名称和圆括......
  • [数据集成/数据同步] 基于数据库增量日志的数据同步方案 : Flink CDC/Debezium/DataX/
    1概述简述:CDC/增量数据同步CDC的全称是ChangeDataCapture(增量数据捕获)在广义的概念上,只要能捕获数据变更的技术,我们都可以称为CDC。我们目前通常描述的CDC技术主要面向数据库的变更,是一种用于捕获数据库中数据变更的技术。CDC的技术实现方案基于查询......
  • 2024/10/16 日 日志 --》关于Mysql的中DQL的初步学习笔记与整理
    在前几天已经进行了Mysql的初步准备和学习,接下来我将继续向后推进。以下为课程学习整理,方便记忆和复习。点击查看代码-------DQL----基础查询--1.查询多个字段--SELECT字段列表form表名 ;--selcet*form表名;--查询所有数据--2.去除重复记录--selectdist......
  • 针对所有的controller 添加出入参log日志打印
    packagecom.aide.web.tool;importlombok.extern.slf4j.Slf4j;importorg.aspectj.lang.ProceedingJoinPoint;importorg.aspectj.lang.annotation.Around;importorg.aspectj.lang.annotation.Aspect;importorg.springframework.stereotype.Component;importjava.ut......