如何从python程序输出日志中隐藏诸如密码之类的敏感信息?

时间:2018-11-13 11:28:51

标签: python security logging

我想知道是否有一个python模块可以用作stdout的筛选器,以防止显示诸如密码或凭据之类的敏感信息?

我正在寻找一种通用的解决方案,因为我无法有效控制或掌握有效打印的内容(用户定义的shell命令的输出)。尽管如此,作为一种安全措施,我还是希望隐藏可能具有潜在意义的信息。

现实生活中的示例:“ set”显示环境变量,并且如果定义了,将清楚地暴露OS_PASSWORD。如果我要描述的过滤器只是将值替换为*,则可以安全使用。

我试图在https://pypi.org上进行搜索,但至今仍找不到任何内容。

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

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

在任何需要某些凭据才能起作用的公共CI系统上,都会遇到相同类型的问题。一种不错的方法是对输出进行清理,以避免信息的意外泄漏。例如,用户可以添加一个“集合”,将其中的一些变量暴露给日志。

这与恶意用户无关,它们可以很容易地找到一种绕开过滤系统的方法,如果他们确实想要的话,而更多是关于防止因无法控制的代码而导致的意外泄漏。

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

1 个答案:

答案 0 :(得分:1)

尝试使用sha-256算法对其进行哈希处理