5

我的场景:我有一个运行 Apache 的共享主机帐户,用于个人项目。现在我的一个朋友需要一点空间来为他的曲棍球俱乐部建立一个网站。我决定让他在我的帐户上运行它,并给他一个限制他访问 public_html/hockey 的 FTP 帐户。

我的问题:有没有办法限制他的 PHP 脚本(在他的 hockey 文件夹中),使他们无法访问 hockey 文件夹之外的任何文件?我正在寻找一种解决方案,涉及到 php.ini 或 .htaccess 中的配置。请不要回复告诉我他应该尽量不要访问该文件夹之外的任何内容。我正在尝试提高安全性以防止其代码中的故意访问和意外安全漏洞。

如果您知道如何在沙盒环境中运行他的内容,我们将非常感谢您提供任何建设性的意见。

谢谢,西蒙

4

3 回答 3

5

您可以使用open_basedir配置设置来限制 PHP 的范围。例如,要设置open_basedir每个目录,httpd.conf你会写

<Directory /var/www/public_html/hockey>
  php_admin_value open_basedir "/var/www/public_html/hockey"
</Directory>
于 2012-09-25T21:52:40.760 回答
0

这是完美的..我知道它会在 5.6 中消失,但 5.3.x 仍然会流行很长时间 老实说.. 太多的托管服务提供商担心通过破坏客户的网站而失去业务......我合作过的几个客户的客户仍然在 PHP 4.x 上运行 .. 这是极端的忽视 ..

他们确实推动了他们中的一些人到 5.2 .. 这在他们推动之前很久就已经过时了.. 但事实仍然是你不能把你的整个客户群推到一个新版本.. 他们中的大多数不是开发商,这会让他们花钱,如果他们因为你强迫而取消,就会造成金钱损失。

我已经尝试在我们的系统上隔离共享帐户.. 这就是为什么这很有用.. 我想尽我所能锁定 5.3-5.5 用户.. 所以我使用 php-fcgi .. suexec..等等..所以在他们的虚拟主机中执行这个指令似乎是下一个最好的隔离级别!

我已经在我的虚拟实验室中对此进行了测试,它似乎完全符合我的要求。它使人们无法从 /etc 获取 glob() 文件并找到我们的 passwd 文件以及他们可能想要的其他虚拟主机蛮力...

于 2015-03-28T04:38:47.610 回答
0

不!

您无法 (99%) 使用相同的 CPANEL/帐户实现这一目标。 open_basedir, allowOverride,safe_mode甚至还不够!cgi/perl/cron-jobs 仍然不受保护!

您最好使用 Reseller(WHM) Cpanel 帐户,或 DirectAdmin(cpanel 替代) 多用户帐户。

于 2015-05-27T17:38:36.103 回答