模块可以保护 PHP 和 Perl 不访问其他用户的文件/数据吗?

模块可以保护 PHP 和 Perl 不访问其他用户的文件/数据吗?

我曾经使用 suPHP 与 suExec 的组合来尝试保护用户并限制 PHP/Perl 耗尽其允许的空间(即:用户/tmp 文件夹)。

自从我上次进行这样的配置已经有一段时间了,可以说有几年了,直到今天我不再需要它,从那时起,一些新的模块就出现了。

  • 我想知道目前可用于此任务的模块有哪些值得使用或者我的设置仍然有效且值得使用?

  • 我还注意到一些公司设置了他们的 ftp 服务器,因此它不会显示以点开头的文件,他们这样做有什么特殊原因吗?我的意思是,在许多情况下,用户希望能够下载/编辑/重新上传他们的 .htaccess 文件,虽然可以上传上述文件,但在这个特定情况下您将无法下载它。

附言:我确实知道 CHMOD 在这一切中扮演着很大的角色,但同样需要强制 Apache 以相关用户身份运行。

答案1

你在说什么模块?

如果只是 PHP 或 Perl,解决方案就会简单得多。通过 CGI 运行脚本会造成巨大的性能开销,而且如果我没记错的话,它会使操作码缓存变得不切实际。仅使用 PHP,您只需设置 base_opendir 并禁用可以绕过它的扩展即可。

但是 php-fpm 允许 php 解释器池以不同的用户身份运行(每个池监听不同的端口),因此如果用户数量可控,这可能是 PHP 脚本的更好解决方案。

答案2

我想知道目前可用于此任务的模块有哪些值得使用或者我的设置仍然有效且值得使用?

有很多模块(你甚至在一条评论中列出了很多模块:)for instance fastCGI, suPHP, suExec, mod_ruid2, etc.。它们各有各的优点和缺点。只有你能决定哪个模块符合要求才能防止森林火灾你的特定需求——根据您的要求评估可用选项并做出最适合您需求的选择。


我还注意到一些公司设置了他们的 ftp 服务器,因此它不会显示以点开头的文件,他们这样做有什么特定的原因吗?

因为这是 Unix 40 多年来的工作方式(以 开头的文件名.被视为“隐藏”,默认情况下不会显示在目录列表中以消除混乱)。
(替代答案:“因为这是本地管理员想要的。”)

.htaccess在这种特定情况下,您将无法下载[该文件]。

错误的。
点文件约定只会影响某件事是否默认显示.
点文件(或任何被主机操作系统视为“隐藏”的内容)仍然可以通过名称直接访问,并通过指定选项显示在目录列表-als

要非常清楚:用前导.是一种化妆品考虑,而不是安全一。

相关内容