首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用星号遮掩日志中的敏感字段。C++

如何用星号遮掩日志中的敏感字段。C++
EN

Stack Overflow用户
提问于 2013-09-27 21:08:25
回答 1查看 449关注 0票数 0

我需要使用文本的'***‘实例从日志中屏蔽敏感字段(如SSN、Address、Name)。代码基完全是C++。这是一个庞大的代码库。我注意到,大多数敏感信息都是在日志中的xml标记中打印的。我对C++非常陌生。如果有人能为我指出正确的方向,我将不胜感激。下面是如何将字段记录在代码中的示例:

代码语言:javascript
复制
 AppMsg rsp(a_dictionary::a_dictionary, XML_RSP, 1);
 ........

 log_msg(CONSOLE, " ResponseTime: %d", response_time);

  rsp.add_field(OUTPUT_XML, rsp_xml);
  rsp.add_field(STATUS_CODE, status_code);
  rsp.add_field(STATUS_DESC, status_desc);

这些日志看起来像:

代码语言:javascript
复制
14:02:58 C--[abcInterfaceServer-1]: abc Query ResponseTime: 0
aRspXml:<?xml version="1.0" encoding="UTF-8"?>   //rsp.add_field(OUTPUT_XML, rsp_xml);
 <CustomerInfo>
     <sourceFlag>1</sourceFlag>
     <Response>
         <Data>
             <LastName>aa</LastName>         //these are the fieds I need to mask
             <FirstName>aaa</FirstName>
             <PhoneNumber>aaaa</PhoneNumber>
             <Street>aaaa</Street>
             <City>aa</City>
             <State>aaaa</State>
             <Zip>aaa</Zip>
               .....
             [1] STATUS_CODE[1234] : num_inst = 1
          [0] 0
          [2] STATUS_DESC[12345] : num_inst = 1
             [0] "SUCCESS"

任何想法都会有帮助。

EN

回答 1

Stack Overflow用户

发布于 2013-09-27 21:37:50

  • 标识包含/打印敏感数据的对象
  • 添加另一种方法(例如publicDataString()),将公共数据序列化为可打印的字符串
  • 修改日志记录指令以使用此方法。

或者,修改这些对象的operator<<(),默认情况下只输出公共数据。

或者,在没有修改的情况下输出到私有日志,并创建一个转换脚本,以便在将私有日志复制到公共日志时删除所有私有信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19060098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档