3

我们正在使用%replaceLogback 的功能来掩盖我们日志文件中的密码和安全令牌等安全敏感信息。

但是,只有 10% 的针对特定 appender 的日志语句需要屏蔽。对于剩下的 90%,运行替换正则表达式是多余的开销。

我们已经考虑过使用标记,例如SEC_SENSITIVE标记敏感语句,并使用过滤器来限制运行哪些附加程序。这将需要为单个记录器设置 2 个互斥的附加程序。

Logger
  |---- Appender 1 (only if marker != SEC_SENSITIVE, no replacement)
  |---- Appender 2 (only if marker == SEC_SENSITIVE, with replacement)

两个 appender 都写入同一个文件。

到了这一步,我有几个问题:

  1. 这个设置有意义吗?或者有没有更简单的方法?(理想情况下是 OOTB,没有自定义代码)
  2. 有关该选项的文档和 StackOverflow 问题prudent强调了它在多个 JVM 设置中的用途。在我们的例子中,所有的日志输出都来自单个 JVM。是否仍然需要启用此选项?或者 Logback 是否足够聪明,可以同步 2 个本地附加程序输出到同一个文件?
  3. 是否有针对此的 OOTB 过滤器?我只找到了 MarkerFilter,但它是一个TurboFilter.
  4. 现在是否支持 OOTB 条件替换(如本答案中所建议的那样)?

环境: Apache ServiceMix 上的 OSGi,带有 Pax Logging 1.7.0。

4

1 回答 1

0

是的,它会工作。不要忘记可加性=假。

或者,从根本上停止问题并在对象的 toString 中编辑任何敏感字段不是更容易吗?

有时敏感案例并不那么容易被发现,例如令牌或 SAML 主题,这些也应该从日志中删除。

于 2014-04-30T02:31:13.203 回答