Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 安全托管环境_Php_Security_Hosting - Fatal编程技术网

Php 安全托管环境

Php 安全托管环境,php,security,hosting,Php,Security,Hosting,我想为一些人提供免费(网站)托管。 这些都托管在我自己的托管帐户上 现在,我有一个名为“hosting_ftp”的文件夹。 在这个文件夹中,有一个文件夹,每个人谁想要托管。 他们将获得一个FTP帐户,该帐户允许他们访问该目录(而不是其他目录,因为该目录被设置为他们的根文件夹) 但是,例如PHP脚本仍然可以访问放在根文件夹(我的个人网站文件)中的文件 现在,防止用户访问我的根目录中的那些文件的最佳方法是什么(就在他们自己的文件夹之外的任何地方)。简单的答案是,除非您的服务有VPS或其他形式的云虚拟

我想为一些人提供免费(网站)托管。 这些都托管在我自己的托管帐户上

现在,我有一个名为“hosting_ftp”的文件夹。 在这个文件夹中,有一个文件夹,每个人谁想要托管。 他们将获得一个FTP帐户,该帐户允许他们访问该目录(而不是其他目录,因为该目录被设置为他们的根文件夹)

但是,例如PHP脚本仍然可以访问放在根文件夹(我的个人网站文件)中的文件


现在,防止用户访问我的根目录中的那些文件的最佳方法是什么(就在他们自己的文件夹之外的任何地方)。

简单的答案是,除非您的服务有VPS或其他形式的云虚拟机,否则您无法确保在这里实现什么。有了这一点,您可以像共享主机提供商那样,使用基于UID的访问控制,每个帐户都有自己的UID,并且可能(但不一定)被chroot隔离

这种类型的解决方案为每个用户使用suEXEC或SUPPP包装的PHP-CGI,因此PHP在用户UID中运行,因此其他人可以使用文件保护来防止其他人对其内容进行读写

如果您使用的是碎片托管帐户,那么您只有一个UID。所有子帐户都将具有对其目录树的FTP访问权限,如果您在这些目录层次结构中启用了PHP脚本,则其PHP脚本将具有对整个目录层次结构的完全R/W访问权限。你的主机提供商不会给你任何根权限


因此,如果您想运行自己的虚拟机,并且对LAMP服务器管理有合理的了解,那么您的建议是可行的。如果您没有,那么您必须假设您授予FTP访问权限的任何人都可以完全访问您层次结构中每个人的数据。抱歉。

因为你说“在我自己的托管帐户上托管”:不可能。您必须更改服务器配置。每个主机帐户都应该
chroot
'd到它们的目录中。@nickb这是通过设置FTP帐户根目录来完成的吗?不,这是通过更改服务器的多个配置来完成的请您的主机更改服务器配置?但我想他会告诉你,你的朋友应该创建一个自己的帐户;)