防止 PHP 跨站点感染

Preventing a PHP cross-site infection

过去,我曾看到一个 cpanel 帐户(带有附加域)从过时的 wordpress 安装中被感染并传播到其他域,因为所有附加域都包含在 public_html 文件夹下。

即。 /home/user/public_html/domain1.com /home/user/public_html/domain2.com

我知道这可以通过购买经销商 cpanel 帐户并为每个域设置单独的 cpanel 帐户来防止,即:

域 1:/home/user1/public_html/ 域 2:/home/user2/public_html/

我想知道当目录树如下时是否可以传播 php 感染:

/home/user/domain1.com/public_html/ /home/user/domain2.com/public_html/

两个域都有相同的用户,但它们不共享相同的 public_html 文件夹,但是它们共享相同的用户。

来自 /home/user/domain1.com/public_html/ 的感染能否利用用户权限和文件所有权 spreaded/copied 到 /home/user/domain2.com/public_html/

??

是的,public_html 目录唯一的特别之处在于它是 Web 服务器用来提供文件服务的根目录。但是对于服务器上的文件系统来说,都是一样的。

问题不在于 public_html,而在于文件和目录权限。 "public_html" 目录中的文件 运行 仍然可以访问其父目录中的文件

如果托管 cpanel 的服务器允许您远程将文件添加到 /home/user1 内的目录,那么您的 PHP 文件也可以访问它。

使用 PHP 您可以禁用 chmod 的内置函数,以及 运行 shell 命令的能力,这将阻止 PHP 脚本更改权限files/directories,可能值得一看。但一般来说,最好将每个站点彼此隔离以限制潜在的安全漏洞