特定PHP脚本的自定义权限

时间:2013-03-17 05:28:40

标签: php security permissions

我正在开发一个网站,它提供了客户端可以将PHP脚本上传到我服务器上的特定目录的选项。我想确保我的系统是安全的,因此我不希望人们能够使用这些PHP脚本来编辑或查看上载目录之外的文件。换句话说,如果public_html/directory1/foo.php处有文件,它应该只能编辑和查看public_html/directory1中的文件,并且不能在系统上的任何其他位置编辑或查看文件。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

super 很危险。从技术上讲,如果你了解linux / windows用户和组配置,Apache配置和PHP配置的方法,有很多方法可以做到这一点。您需要在具有极其特定权限的用户下运行Apache并配置PHP以禁止某些类型的命令(最值得注意的是exec / system命令,但是有很多其他可能让你陷入困境的人)。

我强烈建议您尝试找出一种方法来避免让用户将文件上传到文件夹中的权限,服务器将这些文件作为PHP进行评估。有太多可能出错的事情,以及太多可以忽略的设置。

如果您决定采用这种方式,请在安全的PHP配置和Apache Privilege Separation上进行大量阅读。

答案 1 :(得分:0)

由于PHP是服务器端脚本,我相信你会发现很难正确保护你的系统。话虽如此,您可以通过无权访问其他目录的用户运行apache服务器来限制这些文件,请查看SElinux以获取更多信息。请注意,这样做真的很难,你甚至可能会忘记一个文件,以后可以用它来破解系统。

更好的方法可能是在VM上运行这些服务器,这样即使有人劫持了VM,您也可以随时关闭它并恢复它的数据。