security - 在日志文件中隐藏敏感/ secret 信息

标签 security language-agnostic logging privacy

您将如何隐藏敏感信息以免进入日志文件?是的,您可以有意识地选择不首先记录敏感信息,但是在某些情况下,您通常会在失败时盲目记录错误消息,或者在调查问题时跟踪消息等,最终导致敏感信息落入您的系统中日志文件。

例如,您可能试图将包含客户信用卡号的订单记录插入数据库。数据库发生故障时,您可能希望记录刚刚执行的SQL语句。然后,您将在日志文件中获得客户的信用卡号。

是否有一种设计范式可以用来将某些信息位“标记”为敏感信息,以便通用日志记录管道可以将其过滤掉?

最佳答案

我目前针对该案例的做法是记录此类敏感信息的哈希值。这使我们能够识别属于特定索偿(例如特定信用卡号)的日志记录,但是却不赋予任何人权力来抓取日志并将敏感信息用于其邪恶目的。

当然,始终如一地进行此操作涉及良好的编码习惯。我通常选择使用它们的toString重载(在Java或.NET中)记录所有对象,该重载会序列化标记有应用到它们的Sensitive属性的字段的值的哈希值。

当然,SQL字符串存在更多问题,但我们更多地依赖ORM进行数据持久化,并在各个阶段记录系统状态,然后记录SQL查询,因此这不是问题。

关于security - 在日志文件中隐藏敏感/ secret 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1466905/

相关文章:

language-agnostic - 单线程/核心上的并行如何可能?

security - 将旧密码转移到新的哈希算法?

security - 客户端密码哈希

security - war里面配置的tomcat认证

php - Joomla 3.3 禁用 "Reset Password"功能

python - 是不是 "bad"在顶层定义闭包,只能在函数内部调用?如果是这样 : alternatives?

arrays - 多维数组的线性模拟

java - 如何使用 Log4J 设置我的 BlazeDS 实现?

javascript - 在 JWPlayer 中禁用控制台日志记录

C++ WxWidgets : Single log window for messages from Multiple Threads