【发布时间】:2017-10-22 07:14:00
【问题描述】:
我有 5 个应用程序(以 5 种不同的语言编程)部署在一个公共 Web 服务器中,这些应用程序被编写用于执行特定任务并为任何操作创建日志文件。如何在不被其他应用程序覆盖的情况下实现日志文件的安全性?
【问题讨论】:
-
所有这些标签与您的问题有什么关系?
标签: javascript java python asp.net angularjs
我有 5 个应用程序(以 5 种不同的语言编程)部署在一个公共 Web 服务器中,这些应用程序被编写用于执行特定任务并为任何操作创建日志文件。如何在不被其他应用程序覆盖的情况下实现日志文件的安全性?
【问题讨论】:
标签: javascript java python asp.net angularjs
首先,如果您不相信一个应用程序不会破坏另一个应用程序的日志文件,那么您就有一个非常严重的问题。 `因为应用程序还可以做其他更有害的事情。如果应用程序被认为是不安全或不可信的,最安全的答案是根本不运行它们。
如果您担心应用程序可能意外写入同一个日志文件1,只需将它们配置为使用不同的日志文件名或不同的日志文件目录 2.
如果您只是想保护日志记录,那么一种解决方案是通过独立(安全)日志记录服务进行日志记录,例如 Linux syslog。
另一种方法是为运行每个应用程序创建单独的帐户,并确保设置文件和目录访问权限,以便一个应用程序无权修改另一个应用程序的日志文件。
1 - 实际上,如果应用程序都以“追加”模式打开日志文件,则它们可以安全地写入同一个文件。不过,日志文件轮换可能会有问题。
2 - 你可能已经想到了。
【讨论】:
如果您的日志存储在 commong 日志文件夹中,那么一个简单的解决方案是为不同应用程序的日志正确命名
例如
pythonApp_log_timestamp
aspNetApp_log_timestamp
这样,应用程序将写入其指定的日志,而不会覆盖其他应用程序的日志,并且无论您的托管环境是 linux 还是 windows,都可以正常工作。
您还可以限制应用程序创建的每个日志文件的文件大小,这样您可以确保应用程序在达到指定文件大小并且不会将太多数据转储到单个文件中时创建新文件,这将有助于稍后调试或验证日志。
我在我的应用程序中使用这种方法,帮助我找到特定持续时间的日志,而不是过多地搜索日志。
【讨论】: