如何允许 PHP 脚本写入具有高度安全限制的文件,例如只允许单个用户写入?
困难似乎是PHP脚本作为低权限用户(可能是apache,或www,或nobody?)运行,即使我chown
apache the_writable_file,它所在的目录也可能对低级用户不可写. 一般来说,PHP 可以以安全的方式处理本地文件的常用方式是什么?
如何允许 PHP 脚本写入具有高度安全限制的文件,例如只允许单个用户写入?
困难似乎是PHP脚本作为低权限用户(可能是apache,或www,或nobody?)运行,即使我chown
apache the_writable_file,它所在的目录也可能对低级用户不可写. 一般来说,PHP 可以以安全的方式处理本地文件的常用方式是什么?
不幸的是,在使用mod_php 的共享主机中,无法将安全文件的访问权限限制为您的 Web 应用程序和登录用户。
解决方案是以登录用户身份运行您的 Web 应用程序。当您这样做时,UNIX 文件权限可以正确地锁定其他所有人。有几种方法可以实现它,包括SuExec、suPHP或使用 FastCGI 和mod_fcgid或mod_proxy_fcgid运行 PHP 。FastCGI 是我最喜欢的方式。
另一种解决方案是使用专用主机或虚拟专用服务器。
当然,chgrp apache the_writable_file
并且chmod g+w the_writable_file
。之后,只有您的安全用户和 apache 用户才能写入该文件。由于 apache 用户通常被禁止登录,因此您只需担心 Web 用户使用 http 守护程序写入您的安全文件。
所有包含的文件夹都需要具有执行权限。
例如,如果文件在 中/foo/bar/the_writable_file
,则目录“foo”和“bar”都需要具有可执行权限才能访问 the_writable_file,即使它们没有读/写权限。