【发布时间】:2012-03-02 17:49:52
【问题描述】:
当我在我的项目上运行 Fortify Scan 时,我确实看到我正在使用记录异常
LOGGER.error(e.getMessage(),e);
它说这不是正确的方法,因为攻击者可能会访问此信息并从中获取系统信息并计划攻击。
最好的方法是什么?(不影响安全性)?
【问题讨论】:
标签: java security exception-handling error-logging
当我在我的项目上运行 Fortify Scan 时,我确实看到我正在使用记录异常
LOGGER.error(e.getMessage(),e);
它说这不是正确的方法,因为攻击者可能会访问此信息并从中获取系统信息并计划攻击。
最好的方法是什么?(不影响安全性)?
【问题讨论】:
标签: java security exception-handling error-logging
坦率地说,这种推理在大多数情况下都是荒谬的。您的 LOGGER 对象应该写入本地文件系统,如果远程攻击者可以访问您的文件系统,您将遇到方式更大的问题。
酌情限制对您的日志文件的访问,然后按您的意愿登录。
【讨论】:
您可以在生产中关闭注销,但是当最终用户报告错误并且您不知道发生了什么时,这将使您非常不利。
您应该将日志视为关键数据,并在操作系统级别保护对它们的访问,例如对数据库文件的访问。如果攻击者访问数据库,他无论如何都会破坏系统。充其量只有系统管理员应该有权访问日志文件,并且应该只在需要时才将它们提供给开发人员(生产中的严重错误等)。
【讨论】: