python - 如何从 python 程序输出日志中隐藏密码等敏感信息?
问题描述
我想知道是否有一个 python 模块可以用作标准输出的过滤器,以防止显示密码或凭据等敏感信息?
我正在寻找一个通用的解决方案,因为我无法控制或事先了解有效打印的内容(用户定义的 shell 命令的输出)。尽管如此,作为一项安全措施,我更愿意隐藏可能敏感的信息。
现实生活中的例子:“set”打印环境变量,OS_PASSWORD
如果定义了就会清楚地暴露出来。如果我描述的过滤器只是将值替换为*
它会使其使用安全。
我试图在https://pypi.org上搜索,但我找不到任何东西。
我们可以假设 python 日志记录用于输出,因为这是在 python 中记录任何内容的推荐方式。
澄清:我无法知道哪些环境变量可能需要清理,默认情况下该工具不需要任何凭据,因此我需要一个通用解决方案,该解决方案具有一组已知敏感的默认设置。
任何需要一些凭据才能运行的公共 CI 系统都面临着同样的问题。一个不错的方法是清理输出以避免信息意外泄漏。例如,用户可以添加一个“集合”,将这些变量中的一些暴露给日志。
这不是关于恶意使用,如果他们真的想要,可以很容易地找到绕过过滤系统的方法,更多的是防止由您无法控制的代码导致的意外泄漏。
所以不安全的代码需要访问敏感信息,你不能阻止它显示它。我正在寻找的只是一些“白色粘贴”解决方案....
解决方案
尝试使用 sha-256 算法对其进行散列
推荐阅读
- python-imaging-library - 尽管`resample = Image.BICUBIC`,为什么PIL.Image.rotate()会导致质量下降
- postgresql - 多个子字符串选项上的 Postgres 模式匹配
- swift - 快速警报未执行操作
- python-3.x - 在 if 语句中查找多个单词或字符串
- laravel - 获取帖子字段和每个帖子:最后评论的详细信息
- c# - 如何将图像添加到数据库,因为它接受空值,表示图像列,为用户添加的可选图像
- haskell - 通过“强制”键入角色和令人困惑的行为
- python - 如何让 Selenium Python 单击按钮元素?
- google-api - Youtube 数据 API - /channels 端点不返回较小的用户
- tensorflow2.0 - tensorflow2如何获取中间层输出