是否可以加密 nginx 日志文件?如果可以,logrotate 保存时间是否是最佳时间?
这样做的背景是,客户端担心当第三方服务通过 webhook api 发送某些内容时,访问日志中保存某些用户(登录 ID)可能会发生安全问题。
我找不到这个具体的答案,我想知道这是否是一种防止用户信息泄露的流行(或正确)措施。我遗漏了什么吗?
答案1
您可以access_log
通过syslog
或命名管道(man mkfifo
)发送,然后加密日志,但通常您不会记录任何敏感信息,也不会以可以记录的方式发送任何敏感信息。
如果您认为“登录 ID”是敏感信息,那么请不要将其作为 URL 的一部分发送,因为 URL 可以在任何地方记录 - 发送方系统、中间代理或防火墙、负载平衡器等。
答案2
在你决定之前,我会重新考虑你的风险和威胁情景“加密就是解决方案”。
因为一般来说,访问系统日志需要管理员级别的访问权限和特权,而那些已经拥有这种级别特权的人通常也可以直接访问用户/应用程序数据,无论关于他们的什么信息最终出现在日志中。
但如果某些信息确实过于敏感,无法保存在明文日志文件中,恕我直言,你应该清理你记录的内容,而不是继续记录。考虑创建一个自定义log_format
(例如,您记录$uri
而不是$request
)并将其用于您的 webhook API 以防止记录 GET 参数。