今天在给一个客户做通保的时候,发现他们的日志居然是保存在Web目录下面的,可能我见的少,所以我原地震惊了。
不过,我察言观色了一下对接的工程师,他的表情非常的习以为常,于是我就尽职尽责地耐心和他解释起来——为什么日志不能保存在Web目录下?
在Web开发中,日志文件的存储位置是一个重要的安全考虑因素。日志文件包含了用户活动记录以及其他敏感数据,存在Web目录下有很多安全隐患。
我们知道,Web目录具有公开性。Web目录也称为网站根目录,是服务器上存放网站文件的地方,包括HTML、CSS、JavaScript文件以及图片等资源。这些文件是为了让用户在浏览器中访问而设计的,它们是公开的,不受服务器权限控制的限制。如果日志文件保存在这个目录下,它们可能会被未经授权的用户访问,从而泄露敏感信息。
我举一个真实的类似例子。
在某次攻防演练中,红队利用dirsearch对Web目录进行扫描,发现该网站存在一个ROOT.zip。然后红队访问一下,就下载到了源代码。
放进源代码审计系统一看:
发现可能有的XSS风险,原因是getCookie函数使用unescape处理cookie的值,这可能导致未经过滤的用户输入在页面上反射,从而引发XSS攻击。
于是,红队利用获取的信息去进一步利用。拿到了非常大的权限。
这个案例虽然是在Web目录下扫到了源代码,但是扫到日志是类似的。因为我们日志文件可能包含敏感数据,如用户个人信息、系统错误信息、数据库查询细节等。如果这些信息被恶意用户获取,可能会导致数据泄露、系统被攻击或被用于其他恶意目的。例如,攻击者可能会通过分析日志文件中的SQL错误信息来推断数据库结构,进而发起SQL注入攻击。
然后,将日志文件保存在Web目录下可能会使它们面临被篡改的风险。如果攻击者能够访问并修改日志文件,他们可能会掩盖自己的攻击痕迹,使得安全事件的调查和取证变得更加困难。
现在,许多国家和地区都有数据保护法规,如欧盟的通用数据保护条例(GDPR)和美国的加州消费者隐私法案(CCPA),我国也有数据安全法和个人信息保护法。这些法规要求企业采取适当的技术和管理措施来保护个人数据。将日志文件保存在Web目录下可能会违反这些法规,导致法律责任和经济罚款。
除了这些安全考虑外,Web目录通常被设计为快速响应用户的HTTP请求。如果大量的日志文件存储在这个目录下,它们可能会影响Web服务器的性能,尤其是在日志文件非常大或日志记录非常频繁的情况下。这可能会导致网站加载速度变慢,影响用户体验。
为了提高安全性,日志文件应该被隔离存储,并且只有授权的用户和系统才能访问。这可以通过将日志文件保存在非Web目录下实现,例如,可以设置一个专门的日志服务器或使用文件系统上的特定目录,该目录对Web用户不可见。并且,我们还要遵循最小权限原则,只给用户和系统提供完成其任务所必需的最小权限。将日志文件保存在Web目录下违背了这一原则,因为它给予了所有Web用户对日志文件的访问权限。
综上所述,日志文件不应该保存在Web目录下,因为这样做会带来安全风险、性能问题和合规性问题。正确的做法是将日志文件保存在非Web目录下,并且实施适当的访问控制,以确保只有授权的用户和系统能够访问这些文件。通过这种方式,可以保护日志文件中包含的敏感信息,同时提高服务器的安全性和性能。另外,日志中还不能记录非必要的用户密码等敏感信息,一定要记录,就要模糊化一些敏感信息。
THE END
原文始发于微信公众号(透明魔方):为什么日志不能保存在Web目录下?
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论