IT科技类资讯

一文学会注解的正确使用姿势

时间:2010-12-5 17:23:32  作者:系统运维   来源:人工智能  查看:  评论:0
内容摘要:前言日志作为排查问题的重要手段,可以说是应用集成中必不可少的一环,但在日志中,又不宜暴露像电话,身份证,地址等个人敏感信息,去年 Q4 我司就开展了对 ELK 日志脱敏的全面要求。那么怎样快速又有效地

 

前言

日志作为排查问题的文学重要手段,可以说是正确姿势应用集成中必不可少的一环,但在日志中,使用又不宜暴露像电话,文学身份证,正确姿势地址等个人敏感信息,使用去年 Q4 我司就开展了对 ELK 日志脱敏的文学全面要求。那么怎样快速又有效地实现日志脱敏呢。正确姿势相信读者看完标题已经猜到了,使用没错,文学用注解!那么用注解该怎么实现日志脱敏呢,正确姿势除了日志脱敏,使用注解还能用在哪些场景呢,文学注解的正确姿势实现原理又是怎样的香港云服务器呢。本文将会为你详细介绍。使用

本文将会从以下几个方面来介绍注解。

日志脱敏场景简介 巧用注解解决这两类问题 注解的定义与实现原理 使用注解解决日志脱敏 注解高级用法-解决银行中参数传递顺序要求

相信大家看了肯定有收获!

日志脱敏场景简介

在日志里我们的日志一般打印的是 model 的 Json string,比如有以下 model 类

public class Request {      /**      *  用户姓名      */     private String name;     /**      *  身份证       */     private String idcard;     /**      *  手机号      */     private String phone;     /**      *  图片的 base64      */     private String imgBase64; } 

有以下类实例

Request request = new Request(); request.setName("爱新觉罗"); request.setIdcard("450111112222"); request.setPhone("18611111767"); request.setImgBase64("xxx"); 

我们一般使用 fastJson 来打印此 Request 的 json string:

log.info(JSON.toJSONString(request)); 

这样就能把 Request 的所有属性值给打印出来,日志如下:

{ "idcard":"450111112222","imgBase64":"xxx","name":"张三","phone":"17120227942"} 

这里的日志有两个问题

安全性: name,phone, idcard 这些个人信息极其敏感,不应以明文的形式打印出来,我们希望这些敏感信息是源码库以脱敏的形式输出的 字段冗余:imgBase64 是图片的 base64,是一串非常长的字符串,在生产上,图片 base64 数据对排查问题帮助不大,反而会增大存储成本,而且这个字段是身份证正反面的 base64,也属于敏感信息,所以这个字段在日志中需要把它去掉。我们希望经过脱敏和瘦身(移除 imgBase64 字段)后的日志如下: { "idcard":"450
copyright © 2025 powered by 益强资讯全景  滇ICP备2023006006号-31sitemap