gpt4 book ai didi

php - 对于我的 PHP Web 应用程序,数据库日志记录是否比文件日志记录更安全?

转载 作者:可可西里 更新时间:2023-11-01 06:49:21 27 4
gpt4 key购买 nike

我想将我的 Web 应用程序中的错误/信息和警告消息记录到日志中。我最初想将所有这些记录到一个文本文件中。

但是,我的 PHP Web 应用程序将需要对日志文件的写入权限,如果需要日志文件轮换,则包含此日志文件的文件夹也可能需要写入权限,而我的 Web 应用程序目前没有。我的替代方案是将消息记录到 MySQL 数据库,因为我的 Web 应用程序已经在使用 MySQL 数据库来满足其所有数据存储需求。

但是,这让我想到使用 MySQL 选项比使用文件选项要好得多,因为我已经有了一个配置文件,其中的数据库访问信息使用文件系统权限进行保护。如果我现在使用日志文件选项,我需要修改文件和文件夹访问权限,这只会降低我的应用程序的安全性,并破坏日志记录的全部目的。

更新:我看到的 db 选项的另一个好处是不需要通过使用持久的数据库连接为我的每个网页重新打开数据库连接,这在文件日志记录中是不可能的。在文件记录的情况下,我将不得不打开、写入日志文件并关闭每个页面的文件。

这是正确的吗?我正在使用 XAMPP 进行开发并且是 LAMP 的新手。请让我知道您对日志记录的建议。谢谢。

更新:我更倾向于使用 log4php 将文本文件记录到我的网络服务器上的单独文件夹中,并为我的 Apache 帐户提供对该文件夹的写访问权限。

最佳答案

登录文件可能存在安全隐患。例如考虑一个 LFI Exploit .如果攻击者可以影响您的日志文件并添加类似 <?php eval($_GET[e]);?> 的 php 代码然后他可以使用 LFI 攻击执行此 php 代码。这是一个例子:

易受攻击的代码:

include("/var/www/includes/".$_GET['file']);

如果您像这样访问此页面会怎样:

http://localhost/lfi_vuln.php?file=../logs/file.log&e=phpinfo();

一般来说,如果可能,我会将此错误信息存储到数据库中。然而,为了完成这次攻击,你需要 <> ,这htmlspecialchars()会解决。即使您保护自己免受 LFI 攻击,您也应该有一种“深度防御方法”,也许您没有编写的代码容易受到攻击,例如您正在使用的库。

(PS XAMPP 从安全角度来看真的很糟糕,没有自动更新,而且项目维护人员发布非常严重的漏洞的修复程序非常缓慢。)

关于php - 对于我的 PHP Web 应用程序,数据库日志记录是否比文件日志记录更安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2893499/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com