【问题标题】:php scripts writing to non-world-writable filesphp脚本写入非世界可写文件
【发布时间】:2010-09-07 05:38:04
【问题描述】:

如何允许 PHP 脚本写入具有高度安全限制的文件,例如只允许单个用户写入?

困难似乎在于PHP脚本以低权限用户(可能是apache,或www,或nobody?)运行,即使我chown apache the_writable_file,它所在的目录也可能不可写对于低级用户。一般来说,PHP 以安全方式处理本地文件的常用方式是什么?

【问题讨论】:

    标签: php permissions


    【解决方案1】:

    当然,chgrp apache the_writable_filechmod g+w the_writable_file。之后,只有您的安全用户和 apache 用户才能写入该文件。由于 apache 用户通常被禁止登录,因此您只需担心 Web 用户使用 http 守护程序写入您的安全文件。

    【讨论】:

      【解决方案2】:

      不幸的是,在使用 mod_php 的共享主机中,无法限制访问以保护您的网络应用程序和登录用户的文件。

      解决方案是以登录用户身份运行您的网络应用程序。当您这样做时,UNIX 文件权限可以正确地锁定其他所有人。有几种方法可以实现它,包括SuExecsuPHP,或者使用mod_fcgidmod_proxy_fcgid 使用FastCGI 运行PHP。 FastCGI 是我最喜欢的方式。

      另一种解决方案是使用专用主机或虚拟专用服务器。

      【讨论】:

        【解决方案3】:

        所有包含的文件夹都需要有执行权限。

        例如,如果文件在/foo/bar/the_writable_file,则目录“foo”和“bar”都需要具有可执行权限才能访问_writable_file,即使它们没有读/写权限。

        【讨论】:

          猜你喜欢
          • 2023-03-18
          • 1970-01-01
          • 1970-01-01
          • 2010-10-05
          • 2017-11-01
          • 1970-01-01
          • 2014-04-08
          • 2012-01-08
          • 2014-03-02
          相关资源
          最近更新 更多