如何使异常消息安全



我有一个诊断日志,可以从MVC应用程序的视图中查看。

这样做的原因是很难访问服务器,但是仪表板类型的应用程序可以帮助工程师更容易地远程诊断问题。

问题是,这可能会使渗透测试失败,因为视图包含异常日志详细信息。解决这个问题的一种方法是不允许记录异常,但这将阻止工程师调查导致错误的原因。

那么,如果MVC应用程序受到损害,我如何确保它足够安全?例如,异常日志记录包括堆栈跟踪,其中可能包含有关实现细节的敏感信息,这些信息可能有助于黑客破坏系统。此外,该例外可能包括敏感的数据库信息。

我们确实需要某种方法通过过滤器来传递异常,这样可以去掉可能的细节。实现这一目标的最佳/标准方法是什么?

我们在一个flask (python)应用中遇到了类似的问题。我们最终在生产环境中提供了一个通用错误,而错误被记录下来。

然后我们添加了一个仪表板,但是仪表板不是对每个用户都可见,而是在需要的地方有特殊的权限。您可以使仪表板免费可用(例如用于测试环境),但是文档明确地提到了安全风险。

最后,我认为让客户了解风险是关键——对一些人来说,冒这种风险是令人望而却步的,所以他们停用仪表板,转而向我们发送日志文件。有些人可以接受一些风险,所以他们激活了仪表板,并给了我们特殊的账户来访问仪表板。最后,在某些环境中,与收益相比,风险是最小的,例如,在内部测试环境中,每个人都可以看到仪表板。

作为旁注:我看到的另一个概念:如果用户遇到问题,他的管理员可以为他激活跟踪-例如,每个web服务调用都被收集并保存到可以在开发人员pc上重放的文件中。由于数据可能是高度敏感的-该功能是可选的,用户在被跟踪时看到"跟踪"警告。此外,文件被加密并在一段时间后删除。

最新更新