我是一家公司的开发人员,无论好坏,他们的 IT 部门都负责管理我当前的 Web 应用程序所在的服务器。这是一台 LAMP 服务器,目前,访问日志文件位于服务器目录范围之外的一个文件夹中,也就是说,我无法通过服务器上的脚本访问它。
我用 JS 编写了一个简单的 RegEx 解析器,但是因为该文件位于服务器目录之外,所以我必须进入该文件并手动将其内容复制到服务器上的另一个文件中。
如果我的问题很基础,我很抱歉,但我从未配置过 Apache 服务器,也没有权限测试任何东西。Google 搜索没有找到我想要的内容。
我的问题:在 LAMP 堆栈上,是否可以直接将访问日志文件移动到服务器上?如果可以,有什么理由我不应该要求这样做吗?请记住,该站点仅面向内部,我只需要对文件的读取权限。
答案1
我假设您的 JS 是在浏览器会话中执行的,而不是在服务器本身上执行的。如果不是这样,请告诉我。
是的,可以将日志移到 下DocumentRoot
。但是,将访问日志放在该位置被认为是一个相当大的安全漏洞。这是因为攻击者很容易将自定义文本放在被认为是 DOM 内的位置,这反过来又使漏洞利用变得容易得多。更糟糕的是:一个网站的不良行为可能会搞砸整个服务器。
因此,将访问日志放在以下位置的请求DocumentRoot
会受到高度怀疑;尤其是在共享服务器上。有办法使其更安全,但在共享系统上不太可能做到。
可以从站点访问日志。类似控制面板这样做。我相信这通常是通过 CGI、Passenger 或其他可以访问 DocumentRoot 之外的目录的服务器端可执行文件来完成的。这些方法比直接访问更安全,因为它限制了 javascript 可以访问的内容。
答案2
在文档根目录中暴露日志文件会在 LAMP 服务器上造成巨大的漏洞 - 如果没有复杂的控制,它允许任何人在服务器上部署并运行代码。
作为开发人员,您应该知道这是为什么,并且更好地掌握术语。日志位于文档根目录之外与您是否可以使用服务器上的脚本访问它们无关。
作为开发人员,您应该对目标系统的工作原理有基本的了解。
您还应该与管理系统的人员讨论如何配置系统以及如何解决您的问题 - 有很多解决方案,其中大多数不会完全破坏系统的安全性