仅在实际文件夹和子文件夹中将 PHP 限制为 运行

Limit PHP to run only in the actual folder and subfolders

我在 Linux 服务器的同一个 public_html 文件夹中托管了多个网站。 我希望每个文件夹不能访问其他文件夹,而只包含一些特定文件。

这是我的服务器结构:

-> public_html
---> site1 folder
---> site2 folder
---> site3 folder
---> common scripts folder

例如,如果黑客破坏了 site2,我需要他无法列出 public_html 文件夹的内容或访问其他文件夹中的 运行 脚本。 但与此同时,我还需要例如 site2 能够包含 运行 一些包含在 "common scripts" 文件夹中的特定文件。

是否可以仅使用 htaccess 规则实现此目的?

感谢您的帮助。

首先,您无法通过htaccess 实现这一点。 因为如果黑客闯入网站,那么黑客可以控制整个服务器 space 当前用户帐户(黑客通过的帐户。例如:www 用户帐户)具有访问权限。

如果你需要一个完整的具体解决方案,那么为你的vps服务器创建多个用户并为每个用户定义访问规则和权限,让他们的网站部署到相应的用户space like

/home/user1/sites/site1
.
.
/home/user1/sites/site10

/home/user2/sites/site1

上述场景很简单,就像服务器被虚拟拆分并出售给多个用户一样。 例如:从 godaddy 或 hostgator 购买共享主机 space Godaddy 几乎将他们的服务器分开并将它们出售给多个用户。 每个用户只能查看和访问自己的 space,不能访问其他用户 space,即使他们都驻留在同一台云服务器

不,仅使用 htaccess 规则无法实现此目的

全看php handler,如果是dso或者cgi就不能隔离网站,简单的phpshell就可以访问所有网站及其数据.

FCGI、suPHP 或 PHP-FPM 可用于 运行 php 安全,每个网站单独 UID

你也可以查看chroot