写入非世界可写文件的php脚本
时间:2020-03-05 18:44:51 来源:igfitidea点击:
我们如何允许php脚本写入具有高安全性限制的文件,例如仅允许单个用户写入该文件?
困难似乎是一个php脚本正在以低权限用户身份运行(可能是apache或者www,还是没有人?),即使我通过apache the_writable_file对其进行访问,该目录对于低级别的用户也可能不可写用户。通常,php以安全的方式处理本地文件的通常方式是什么?
解决方案
回答
当然,chgrp apache the_writable_file
和chmod g + w the_writable_file
。之后,只有安全用户和apache用户才能写入该文件。由于通常禁止apache用户登录,因此我们只需要担心Web用户使用http守护程序写入安全文件。
回答
不幸的是,在使用mod_php的共享主机中,无法限制对Web应用程序和登录用户的安全文件访问。
解决方案是将Web应用程序作为登录用户运行。当我们这样做时,UNIX文件权限可以正确地将其他所有人锁定。有几种方法可以实现该目的,包括SuExec,suPHP或者通过带有mod_fcgid或者mod_proxy_fcgid的FastCGI运行PHP。 FastCGI是我最喜欢的方式。
另一种解决方案是使用专用主机或者虚拟专用服务器。
回答
所有包含的文件夹都需要具有执行权限。
例如,如果文件位于/ foo / bar / the_writable_file
中,则目录" foo"和" bar"都需要具有可执行权限才能访问the_writable_file,即使它们没有读/写权限。