【问题标题】:OWASP-ESAPI logger help needed需要 OWASP-ESAPI 记录器帮助
【发布时间】:2014-08-15 14:53:14
【问题描述】:

在我当前的项目中,我使用的是 Maven 和 Spring。我目前正在使用 SLF4J 记录器来记录服务。取而代之的是,我想使用 OWASP-ESAPI 记录器。我不想使用OWASP-ESAPI 安全,只是日志服务。任何人都可以通过以最小的努力替换 slf4j 记录器来指导我如何使用OWASP-ESAPI 记录器吗?我尝试了很多谷歌搜索,但没有任何帮助。我将非常感谢一些链接以获取有关 OWASP-ESAPI 记录器的知识。

【问题讨论】:

    标签: logging owasp esapi


    【解决方案1】:

    重构您的代码以删除 slf4j 是一个可怕的解决方案,因为这样您就无法将 JUL、JCL、LOG4J 流量捕获到一个常见的日志漏斗中。先前的反应是不好的建议。

    1. 您可以启用 ESAPI 以使用 JUL 日志记录,然后通过在 SLF4J 上使用 JUL,重新捕获该日志流量并路由到其他记录器(即 log4j 或 logback)。 为此,在 ESAPI.properties 中: ESAPI.Logger=org.owasp.esapi.reference.JavaLogFactory

    2. 另一种选择是通过 ESAPI 记录器接口构建 SLF4J 记录器代理。我认为在这种情况下,您失去的功能多于获得的功能。

    【讨论】:

    • 感谢您的回复,我们很久以前就放弃了 OWASP ESAPI 记录器
    • 不好的建议取决于应用程序。当我写这篇文章时,我正在从事的项目主要是 log4j 和一点 slf4j。因此,将所有内容都转换为 ESAPI 日志记录是有意义的。我们不需要一个通用的日志漏斗。我喜欢你的第一个选项。
    • 如果有人还在看这个,我想了解这里的第一个选项。我明白。是否允许我们使用默认的 slf4j 接口,但通过 esapi html 过滤器过滤日志输出?我需要细节。
    • 我在 ESAPI.properties 中使用ESAPI.Logger=org.owasp.esapi.logging.slf4j.Slf4JLogFactory。我在引发安全标志的地方使用 ESAPI 记录器(例如,通过静态分析工具) - 通常在身份验证和授权模块中。我在应用程序的其余部分使用 slf4j 记录器。
    【解决方案2】:

    要注意的关键是 ESAPI 仅针对 log4j 或 commons java.util 日志记录构建。我假设log4j。

    第 1 步:从类路径中删除 slf4j 库。如果您使用的是 IDE,这应该“圣诞树”您的应用程序并告诉您必须更改的所有内容。

    第 2 步:将 esapi 添加到类路径

    第 3 步:手动将所有 slf4j 日志记录调用转换为新的 ESAPI 对应项。您将像这样获取对 esapi 记录器的引用:

    Logger logger = ESAPI.getLogger("my.foo.class.Foo");

    根据提供的信息,这非常简单。

    注意:Log4j 不支持 slfj 支持的某些格式调用。这将导致您手动重新创建输入,或者将所有这些实例推迟到以后,然后仍然使用 slf4j,但只使用 [MessageFormatter][1] 传递日志输入。

    【讨论】:

      猜你喜欢
      • 2015-08-13
      • 1970-01-01
      • 2011-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-13
      相关资源
      最近更新 更多