【log4j2日誌框架】敏感字元過濾
0、背景
zookeeper服務端所使用的日誌框架被我替換為了log4j2,zk的sessionid又被負責安全的大佬評估為敏感資訊,不能直接列印,所以要想一個在不修改原始碼的情況快速解決sessionid列印遮蔽的辦法。
1、log4j2的replace功能
很多日誌框架都有過濾替換的功能,log4j2也不例外,支援正則替換。
先看zk的sessionid生成方法
sessionid高位為服務id,中間為時間戳,低位為遞增序列,最大值為Long的最大值。
log4j2.properties的pattern中增加正規表示式
appender.rolling.layout.pattern = %d %p %c{1.} [%t] %replace{%msg}{0x[a-f0-9]{15,}|0x0}{0x*} -%replace{%ex}{0x[a-f0-9]{15,}|0x0}{0x*}%n
appender.rolling.layout.alwaysWriteExceptions=false
這裡不僅replace了msg,還replace了ex,因為log4j2中異常是單獨區分的,正常日誌和異常日誌中均有可能出現sessionid,因此要同時對msg和ex配置replace。appender.rolling.layout.alwaysWriteExceptions預設是開啟的,既然已經在pattern中配置了ex就要關閉alwaysWriteExceptions。
最終完美替換所有sessionid為0x*
相關文章
- 用laravel框架實現敏感詞彙過濾功能Laravel框架
- Java敏感詞過濾Java
- SpringBoot 整合 Log4j2 日誌框架Spring Boot框架
- SpringBoot整合Log4j2日誌框架Spring Boot框架
- JavaWeb - 【Filter】敏感詞過濾JavaWebFilter
- ADB logcat 過濾方法(抓取日誌)GC
- 用命令過濾MySQL慢查詢日誌MySql
- JavaScript評論敏感詞過濾程式碼JavaScript
- [linux]linux過濾日誌奇偶數行Linux
- 過濾器應用【編碼、敏感詞、壓縮、轉義過濾器】過濾器
- 教你如何實現Python 過濾敏感詞Python
- js實現敏感詞過濾演算法JS演算法
- JAVA使用DFA演算法過濾敏感詞Java演算法
- 日誌-log4j2基於AsyncAppender的非同步日誌列印APP非同步
- log4j2分層輸出日誌
- 使用Log4j2輸出日誌演示
- 日誌-log4j2基於AsyncLogger的非同步日誌列印非同步
- python過濾nginx access日誌存入資料庫中PythonNginx資料庫
- 用AWK來過濾nginx日誌中的特定值~~~薦Nginx
- 過濾或者查詢敏感詞(DFA 演算法)演算法
- DFA演算法之內容敏感詞過濾演算法
- php過濾html標籤、特殊字元、轉義字元PHPHTML字元
- log4j2通過tcp傳送json日誌到logstash ElasticsearchTCPJSONElasticsearch
- 關於過濾字元的問題字元
- Laravel/Lumen 自定義錯誤日誌格式過濾堆疊資訊Laravel
- 如何快速過濾出一次請求的所有日誌?
- 新特性解讀 | MySQL 8.0錯誤日誌深入過濾(上)MySql
- 開源了一個 JavaScript 版敏感詞過濾庫JavaScript
- Safari網頁敏感文字過濾外掛:Profanity Filter for Mac網頁FilterMac
- DFA在C#中的實現:過濾敏感詞C#
- SpringBoot 實現整合log4j2日誌Spring Boot
- spring boot更換日誌為log4j2Spring Boot
- 在java下使用log4j2記錄日誌Java
- 日誌框架學習框架
- 今日完善了字元編碼過濾器。字元過濾器
- 高效的關鍵詞替換和敏感詞過濾工具
- 日誌服務之敏感資訊脫敏與審計
- Log4j2 + SLF4j打造日誌系統