【问题标题】:Mask sensitive data in exception log spring boot-slf4j屏蔽异常日志中的敏感数据 spring boot-slf4j
【发布时间】:2020-09-02 12:12:25
【问题描述】:

我正在开发 spring boot 微服务应用程序。(java 8,Spring boot,slf4j 用于日志记录) 使用 Fire Store 作为数据库并部署在 Google Cloud 中。

try{
 some code //service call and will hit db
   } catch (InterruptedException e) {
            throw new MyException("Some error occurred " e);

        } catch (ExecutionException e) {
            throw new MyException("Error occurred " e);
        }catch (Exception e) {
            LOGGER.error("Error occurred " + e);
        }

在抛出异常时是否有可能显示敏感信息。 我读过一些地方,对于致命错误,不应过滤错误

谢谢你

【问题讨论】:

    标签: spring-boot google-cloud-platform google-cloud-firestore java-8


    【解决方案1】:

    是否有机会在抛出异常时显示敏感信息? R:是的,但这完全取决于您的应用程序如何利用这些信息以及如何将敏感信息集成到日志/错误输出中。 在 Java 方面,异常将由类堆栈跟踪符合,我认为它不会包含任何敏感信息,错误消息可能是唯一的泄漏点,但同样,这取决于您的日志记录策略/实践.

    我读过一些地方,对于致命错误,不应过滤错误... R:这对应于分析日志并将其使用到您的应用程序中的策略,答案取决于相同的事实,即这些日志大多由您编写。

    【讨论】:

    • 谢谢@serigo franco。在我的代码中,我没有记录任何敏感信息。我的问题是是否有机会将详细信息显示为异常堆栈跟踪的一部分。而不是抛出详细的堆栈跟踪我可以显示 e.getCause() 或 e.getMessage()
    • e.getCause() 或 e.getMessage() 是错误中最具描述性的部分,例如,当错误来自您正在使用的资源(如数据库连接)时,很可能是id 可能会出现,所以我认为您可以清除此类日志,大多数情况下您还可以在数据库和应用程序中配置日志级别。如果这些消息是由您控制的,那么您只需要记住它们,如果它们不是,那么您可以尝试清除它们。
    猜你喜欢
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    相关资源
    最近更新 更多