首页 > 解决方案 > 如何从 python 程序输出日志中隐藏密码等敏感信息?

问题描述

我想知道是否有一个 python 模块可以用作标准输出的过滤器,以防止显示密码或凭据等敏感信息?

我正在寻找一个通用的解决方案,因为我无法控制或事先了解有效打印的内容(用户定义的 shell 命令的输出)。尽管如此,作为一项安全措施,我更愿意隐藏可能敏感的信息。

现实生活中的例子:“set”打印环境变量,OS_PASSWORD如果定义了就会清楚地暴露出来。如果我描述的过滤器只是将值替换为*它会使其使用安全。

我试图在https://pypi.org上搜索,但我找不到任何东西。

我们可以假设 python 日志记录用于输出,因为这是在 python 中记录任何内容的推荐方式。

澄清:我无法知道哪些环境变量可能需要清理,默认情况下该工具不需要任何凭据,因此我需要一个通用解决方案,该解决方案具有一组已知敏感的默认设置。

任何需要一些凭据才能运行的公共 CI 系统都面临着同样的问题。一个不错的方法是清理输出以避免信息意外泄漏。例如,用户可以添加一个“集合”,将这些变量中的一些暴露给日志。

这不是关于恶意使用,如果他们真的想要,可以很容易地找到绕过过滤系统的方法,更多的是防止由您无法控制的代码导致的意外泄漏。

所以不安全的代码需要访问敏感信息,你不能阻止它显示它。我正在寻找的只是一些“白色粘贴”解决方案....

标签: pythonsecuritylogging

解决方案


尝试使用 sha-256 算法对其进行散列


推荐阅读