具有正确权限的自定义日志文件

时间:2011-01-11 15:26:41

标签: php permissions apache2

我有一个处理文件,用于我网站的付款。它工作正常,但我想要做的是将所有请求记录到此页面,以便如果有任何错误,原始数据将被保存,我可以手动处理事务。处理文件使用fopen写入另一个目录中的日志文件。

我现在拥有的是我的根目录下的一个单独的文件夹,权限为755.然后是一个日志文件,里面有权限777.写入日志文件的处理文件,如果重要,则设置为777。

现在可以使用,但日志文件是公开的。我知道我可以做得更好,权限不正确。我怎样才能更好地做到这一点?

2 个答案:

答案 0 :(得分:1)

将日志文件放在文档根目录之外。写入它的PHP脚本仍然可以访问它(通过完整路径),但Apache将无法提供它。

答案 1 :(得分:0)

我在为自己寻找答案时遇到了这个问题。我不相信有一个简单的“权限修复”来做你想做的事情,也许最安全的方法是将日志文件放在public_html目录之外。

然而,这有时会令人讨厌 - 特别是如果你想要,例如在日志文件中捕获paypal ipn dump文本,但不能公开访问它。

在这种情况下,您可以使用.htaccess文件指令来允许从脚本写入,但拒绝从公共访问中读取。

例如,这适用于我(root .html文件夹中的Apache .htaccess);

 <FilesMatch "mycustom\.log">
   Order allow,deny
   Deny from all
 </FilesMatch>

如果您想要保护多个日志,请像这样使用“管道分离”;

 <FilesMatch "mycustom\.log|ipn_errors\.log">
   Order allow,deny
   Deny from all
 </FilesMatch>

值得注意的是,从apache 2.4开始,上述指令已被弃用,您可能希望考虑使用更多当前指令:https://httpd.apache.org/docs/2.4/howto/access.html

希望能帮到你!