gpt4 book ai didi

java - 堆栈跟踪和错误中的密码清理

转载 作者:行者123 更新时间:2023-12-01 18:44:20 24 4
gpt4 key购买 nike

我们目前遇到了一个有趣的问题,涉及打印到服务器日志中的错误日志的清理。我们设置了适当的全局错误处理,并有自定义错误消息,这些消息作为 OSGi java servlet 的响应发送回来。

我们使用 Docker 化的容器作为自动缩放的服务器实例,因此我们正在考虑设置一个日志聚合器并将异常存储在云中的数据库中,这样我们还可以跟踪有关异常的指标并查明我们如何可以改进我们的开发流程以减少某些类型的错误等。

我做了一些关于应该如何完成的研究,并且我 found this 。 OWASP 日志记录表作弊。它提到,除了其他一些事情之外,决不应该记录密码。这引出了我的问题:

如何在不使用一些糟糕的文本处理或手动掩盖所有潜在情况的情况下正确清理我的日志?

示例堆栈跟踪:

pkg.exceptions.CustomException: some registration error 
ERROR: duplicate key value violates unique constraint "x_username_org_id_key"
Detail: Key (username, org_id)=(SOME EMAIL, 1) already exists.
Query: with A as (some query) insert into someTable (..values...) Parameters: [X, X, X, X, X, SOME_EMAIL, THE_PASSWORD]
at somepkg.etc

这是注册系统中非常常见的错误,是由于用户名冲突而发生的。当然,可以通过确保在不尝试插入之前不获取用户名并单独处理该情况来避免这种特定情况,但这只是许多其他情况中的一个情况。

在四处寻找解决方案后,似乎没有明显的方法来解决问题,我想知道是否每个人都只是实现了自己版本的日志清理程序?如果存在一些麻烦的字符串,我们可以简单地清除堆栈跟踪,但这不是最好的解决方案。有什么建议吗?

最佳答案

如果您仅存储和传递密码哈希值,则无需清理密码日志。如果必须在代码中临时保留密码,请使用 char[] 而不是 String。一般来说,这是一种更安全的方法,被认为是最佳实践。标准库API均使用字符数组作为密码。

关于java - 堆栈跟踪和错误中的密码清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59868857/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com