【问题标题】:Custom Log File with Correct Permissions具有正确权限的自定义日志文件
【发布时间】:2011-01-11 15:26:41
【问题描述】:

我有一个网站付款处理文件。它工作得很好,但我想做的是将所有请求记录到这个页面,这样如果出现任何错误,原始数据就会被保存,我可以手动处理事务。处理文件使用fopen写入另一个目录的日志文件。

我现在拥有的是我的根目录上的一个单独文件夹,权限为 755。然后是一个日志文件,权限为 777。写入日志文件的处理文件(如果重要的话,在 PHP 中)设置为 777。

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

【问题讨论】:

    标签: php permissions apache2


    【解决方案1】:

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

    【讨论】:

    • 这不是关于权限的答案
    【解决方案2】:

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

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

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

    例如,这对我有用(根 public_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

    希望对你有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-07
      • 1970-01-01
      • 1970-01-01
      • 2016-07-16
      • 2012-03-05
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      相关资源
      最近更新 更多