1

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

4

2 回答 2

1

这是超级危险的。从技术上讲,如果您了解 linux/windows 用户和组配置、Apache配置和PHP配置的方式,那么有一些方法可以做到这一点。您需要Apache在具有极其特定权限的用户下运行,并配置 PHP 以禁止某些类型的命令(最值得注意的是exec/system命令,但还有很多其他可能会给您带来麻烦的命令)。

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

如果您决定走这条路,请阅读有关安全 PHP 配置和Apache Privilege Separation的大量信息。

于 2013-03-17T05:44:46.903 回答
0

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

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

于 2013-03-17T05:44:21.417 回答