在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SpringBoot日志脫敏的方式介紹

jf_ro2CN3Fa ? 來源:csdn ? 2023-01-09 10:49 ? 次閱讀

前言

在我們書寫代碼的時候,會書寫許多日志代碼,但是有些敏感數據是需要進行安全脫敏處理的。

對于日志脫敏的方式有很多,常見的有①使用conversionRule標簽,繼承MessageConverter②書寫一個脫敏工具類,在打印日志的時候對特定特字段進行脫敏返回。

兩種方式各有優缺點:

第一種方式需要修改代碼,不符合開閉原則。

第二種方式,需要在日志方法的參數進行脫敏,對原生日志有入侵行為。

基于 Spring Boot + MyBatis Plus + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

自定義脫敏組件(slf4j+logback)

一個項目在書寫了很多打印日志的代碼,但是后面有了脫敏需求,如果我們去手動改動代碼,會花費大量時間。如果引入本組件,完成配置即可輕松完成脫敏。(僅需三步可輕松配置)

一、自定義脫敏組件 - 脫敏效果演示

7078b60c-837d-11ed-bfe3-dac502259ad0.png708a6406-837d-11ed-bfe3-dac502259ad0.png

二、自定義脫敏組件 - 使用方式

1、引入Jar包依賴

前提是你將Jar包打入本地倉庫,Jar包地址見后文。


pers.liuchengyin
logback-desensitization
1.0.0

2、替換日志文件配置類(logback.xml)

日志打印方式都只需要替換成脫敏的類即可,如果你的業務不需要,則無需替換。

①ConsoleAppender - 控制臺脫敏

//原類
ch.qos.logback.core.ConsoleAppender
//替換類
pers.liuchengyin.logbackadvice.LcyConsoleAppender

②RollingFileAppender - 滾動文件

//原類
ch.qos.logback.core.rolling.RollingFileAppender
//替換類
pers.liuchengyin.logbackadvice.LcyRollingFileAppender

③FileAppender - 文件

//原類
ch.qos.logback.core.FileAppender
//替換類
pers.liuchengyin.logbackadvice.LcyFileAppender

替換示例:



 



${CONSOLE_LOG_PATTERN}



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

該配置文件應該放在resources文件下

70a00bee-837d-11ed-bfe3-dac502259ad0.png

三、自定義脫敏組件 - 脫敏規范

1、支持數據類型

八大基本類型及其包裝類型、Map、List、業務里的Pojo對象、List<業務里的Pojo對象>、JSON字符串。

注:在配置文件中配置的時候,只需要配置對象里的屬性值就行。

2、不支持的數據類型

List<八大基本類型及包裝類型>,因為不知道脫敏的數據源具體是哪一個。

3、匹配規則

key + 分割符 + value,目前僅支持冒號(:)和等號(=),示例如下:

log.info("youremail:{},yourphone:{}","123456789@qq.com","15310763497");
log.info("youremail={},yourcellphone={}","123456789@qq.com","15310763497");

key:定義了對應需要脫敏的關鍵字,如上訴的email、phone等以及業務對象中的字段、Map中的Key、JSON中的Key

value:需要脫敏的值,如上訴的123456789@qq.com、15310763497。

4、日志規范

建議書寫日志的時候盡量規范,對于key為中文的是沒有辦法脫敏的,規范程度可以見脫敏效果演示里的代碼。

四、logback-desensitize.yml配置說明

>基于SpringCloudAlibaba+Gateway+Nacos+RocketMQ+Vue&Element實現的后臺管理系統+用戶小程序,支持RBAC動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能
>
>*項目地址:
>*視頻教程

#日志脫敏
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

上面這個配置是相對完整的,一定要嚴格遵守層級配置格式。

自定義脫敏支持的方式

1、key:value的方式

phone:4,7,表示phone屬性的4-7位進行脫敏

原始數據:13610357861

脫敏后:136**** 7861

2、以符號作為起始、結束節點作為脫敏標志

emai:"@>(4,7)",@為脫敏標志,>表示其為結束節點,<表示其為開始節點。即@>表示對@之前的進行脫敏,@<表示對@之后的進行脫敏。這個示例就是@前的數據的第4-7位進行脫敏。

注意:這種規則里的雙引號、括號不能省略,其次:和=不能作為標志符號,因為和匹配規則有沖突

原始數據:123456789@qq.com

"@>(4,7)"脫敏后:123**** 89@qq.com

"@<(1,3)"脫敏后:123456789@***com

3、自定義正則脫敏

patterns:
#手機號
-key:phone,mobile
custom:
#手機號的正則
-customRegex:"^1[0-9]{10}"
#脫敏范圍
position:4,7

customRegex:正則表達式,如果符合該表達式,則使用其對應的脫敏規則(position)

4、一個字段,根據多種值含義進行自定義脫敏

比如說,username字段的值可以是手機號、也可以是郵箱,這個值動態改變的,前面幾種方式都沒辦法解決,可以使用該方式。

patterns:
-key:username
custom:
#手機號-11位
-defaultRegex:phone
position:4,7
#郵箱-@
-defaultRegex:email
position:"@>(3,12)"
#身份證-15/18位
-defaultRegex:identity
position:1,3
#自定義正則
-customRegex:"^1[0-9]{10}"
position:1,3
#都匹配不到時,按照這種規則來
-defaultRegex:other
position:1,3

注意:上面示例中匹配規則里的 雙引號和括號 都不能省略

該組件內置四種匹配規則:手機號、身份證號、郵箱、other(其他匹配不到時用的),內置一種脫敏方式:password,表示完全脫敏,可用于pattren下的。

注:當pattern和patterns下的key有重復的時候,只會使用pattern下指定的方式進行脫敏。

70ae0bc2-837d-11ed-bfe3-dac502259ad0.png

Jar包打入Maven本地倉庫的方式

1、下載Jar包,放在一個文件夾里

2、在這個文件夾里打開cmd(打開cmd,進入到這個文件夾)

3、執行命令(前提保證maven配置正常,使用mvn -v命令查看是否正常,如果顯示版本號表示正常)

mvninstall:install-file-DgroupId=pers.liuchengyin-DartifactId=logback-desensitization-Dversion=1.0.0-Dpackaging=jar-Dfile=logback-desensitization-1.0.0.jar

命令說明:

-DgroupId
表示jar對應的groupId
pers.liuchengyin
-DartifactId:
表示jar對應的artifactId
logback-desensitization
-Dversion
表示jar對應的version
1.0.0







審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • JSON
    +關注

    關注

    0

    文章

    119

    瀏覽量

    7011
  • SpringBoot
    +關注

    關注

    0

    文章

    174

    瀏覽量

    201

原文標題:Spring Boot 3 步完成日志脫敏,簡單實用~

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    SpringBoot中的Druid介紹

    SpringBoot中Druid數據源配置
    發表于 05-07 09:21

    基于SpringBoot mybatis方式的增刪改查實現

    SpringBoot mybatis方式實現增刪改查
    發表于 06-18 16:56

    怎樣去使用springboot

    怎樣去使用springboot呢?學習springboot需要懂得哪些?
    發表于 10-25 07:13

    如何實現SpringBoot項目中的隱私數據脫敏

    數據脫敏:把系統里的一些敏感數據進行加密處理后再返回,達到保護隱私作用
    的頭像 發表于 01-08 10:25 ?2115次閱讀

    什么是 SpringBoot

    本文從為什么要有 `SpringBoot`,以及 `SpringBoot` 到底方便在哪里開始入手,逐步分析了 `SpringBoot` 自動裝配的原理,最后手寫了一個簡單的 `start` 組件,通過實戰來體會了 `
    的頭像 發表于 04-07 11:28 ?1370次閱讀
    什么是 <b class='flag-5'>SpringBoot</b>?

    如何實現一個注解進行數據脫敏

    ? 什么是數據脫敏 開胃菜 使用 Hutool 工具類實現數據掩碼 使用 Jackson 進行數據序列化脫敏 注解實現數據脫敏 1、定義一個注解 2、創建一個枚舉類 3、創建我們的自定義序列化類 4
    的頭像 發表于 06-14 09:37 ?1061次閱讀
    如何實現一個注解進行數據<b class='flag-5'>脫敏</b>

    什么是數據脫敏?常用的脫敏規則有哪些呢?

    數據脫敏,指對某些敏感信息通過脫敏規則進行數據的變形,實現敏感隱私數據的可靠保護。
    的頭像 發表于 08-15 10:04 ?2.5w次閱讀
    什么是數據<b class='flag-5'>脫敏</b>?常用的<b class='flag-5'>脫敏</b>規則有哪些呢?

    SpringBoot 連接ElasticSearch的使用方式

    SpringBoot,今天我們就以 SpringBoot 整合 ElasticSearch 為例,給大家詳細的介紹 ElasticSearch 的使用! SpringBoot 連接
    的頭像 發表于 10-09 10:35 ?1205次閱讀

    Loguru日志記錄器的安裝方式

    Loguru 一個能徹底解放你的日志記錄器。 它即插即用,具備多種方式滾動日志、自動壓縮日志文件、定時刪除等功能。 除此之外,多線程安全、高亮日志
    的頭像 發表于 10-16 11:35 ?774次閱讀
    Loguru<b class='flag-5'>日志</b>記錄器的安裝<b class='flag-5'>方式</b>

    SpringBoot采用JsonSerializer和Aop實現可控制的數據脫敏

    的確實現了數據脫敏,但是有個問題現在的脫敏針對的是 只要對該實體類進行了使用返回的接口,中的數據都會進行脫敏,在有些場景下是不需要的,所以說要進行改進。
    的頭像 發表于 11-06 16:15 ?1778次閱讀
    <b class='flag-5'>SpringBoot</b>采用JsonSerializer和Aop實現可控制的數據<b class='flag-5'>脫敏</b>

    kernel日志寫入logd介紹

    kernel日志寫入logd介紹 通過logcat命令獲取kernel日志比較特殊,故作為一個例子進行梳理。 2.3.1 整體流程 2.3.2 命令打印kernel日志 通過logca
    的頭像 發表于 11-23 17:11 ?793次閱讀
    kernel<b class='flag-5'>日志</b>寫入logd<b class='flag-5'>介紹</b>

    盤點一下PostgreSQL的幾種常用脫敏方式

    PostgreSQL Anonymizer 實現動態脫敏方式是通過將定義某個角色為 "MASKED" 以及脫敏規則。被授予 "MASKED" 角色的用戶將無法訪問原始數據,而其他角色仍然可以訪問。它現已支持多種的
    的頭像 發表于 12-05 09:59 ?655次閱讀
    盤點一下PostgreSQL的幾種常用<b class='flag-5'>脫敏</b><b class='flag-5'>方式</b>

    數據脫敏的3種常見方案,好用到爆!

    數據脫敏插件,目前支持地址脫敏、銀行卡號脫敏、中文姓名脫敏、固話脫敏、身份證號脫敏、手機號
    的頭像 發表于 02-25 16:14 ?1930次閱讀
    數據<b class='flag-5'>脫敏</b>的3種常見方案,好用到爆!

    systemd journal收集日志的三種方式

    隨著 systemd 成了主流的 init 系統,systemd 的功能也在不斷的增加,比如對系統日志的管理。Systemd 設計的日志系統好處多多,這里筆者就不再贅述了,本文筆者主要介紹 systemd journal 收集
    的頭像 發表于 10-23 11:50 ?362次閱讀
    systemd journal收集<b class='flag-5'>日志</b>的三種<b class='flag-5'>方式</b>

    日志篇:模組日志總體介紹

    ?今天我們學習合宙模組日志總體介紹,以下進入正文。 一、本文討論的邊界 本文是對合宙 4G 模組, 以及 4G+GNSS 模組的日志功能的總體介紹。通過
    的頭像 發表于 10-24 07:16 ?249次閱讀
    <b class='flag-5'>日志</b>篇:模組<b class='flag-5'>日志</b>總體<b class='flag-5'>介紹</b>
    主站蜘蛛池模板: 色综合美国色农夫网 | 黄色爱爱视频 | 免费人成网址在线观看国内 | 毛片视频免费网站 | 亚洲 欧美 自拍 另类 | 超h 高h 污肉1v1御书屋 | 天天噜夜夜操 | 又黄又爽又猛大片录像 | 久久青草国产手机看片福利盒子 | 伊人www | 日日操夜夜骑 | 91福利国产在线观看网站 | 欧美另类色 | 日韩免费观看一级毛片看看 | 国产在线一卡 | 亚洲国产精品综合久久久 | 亚洲aa| 日韩成人免费观看 | 亚洲精品乱码久久久久久蜜桃图片 | 35pao免费视频 | 国产一级特黄 | 五月情视频在线观看 | 免费看吻胸亲嘴激烈网站 | 天堂影院在线 | 无遮挡很爽很污很黄在线网站 | 色多多入口 | 五月天色丁香 | 丁香六月欧美 | 精品在线一区二区 | 亚洲精品影视 | 午夜影院在线观看 | 欧美精品人爱a欧美精品 | 五月天激情开心网 | 高清一区二区三区视频 | 亚洲日本一区二区三区在线不卡 | 天天爽夜爽免费精品视频 | 热久在线 | 国产午夜精品一区二区 | 天天夜夜狠狠 | 男女交性拍拍拍高清视频 | aaaaaa级特色特黄的毛片 |