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

我已经使用了suPHP和suExec的组合来试图保护用户,并限制PHP / Perl的运行空间(即:user / tmp文件夹)。

自从我上一次做了这样的configuration,我可以说几年,直到今天我不需要它,从那以后,一些新的模块进来了。

PS:我明白,CHMOD在所有这些方面都有一个很大的漏洞,但是正如明智地迫使Apache运行的那样,用户也是需要的。

你在说什么模块?

如果只是PHP或Perl,解决scheme将会简单得多。 通过CGI运行脚本具有巨大的性能开销,而IIRC使操作码caching不切实际。 仅使用PHP,您可以简单地设置base_opendir并禁用可绕过它的扩展。

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

我想知道什么是目前可用于这个任务是值得使用的模块或我的设置仍然有效,值得使用?

有很多模块(你甚至在你的一个评论中列出了一大堆模块: for instance fastCGI, suPHP, suExec, mod_ruid2, etc. )。 他们各有其优点和缺点。 只有您可以防止森林火灾决定哪个模块满足您的具体需求 – 根据您的要求评估可用的选项,并根据您的需求做出最合适的select。


我也注意到一些公司设置他们的ftp服务器,所以它不会显示以点开头的文件是否有任何特定的原因,他们会想要的?

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

在这个特定的情况下你将无法下载[ .htaccess文件]。

错误。
dotfile约定只影响是否默认情况下显示
dotfiles(或被主机操作系统认为“隐藏”的任何东西)仍然可以直接按名称访问,并通过指定ls-a选项显示在目录列表中。

要清楚地说明:用一个领先的命名文件. 是一个化妆品的考虑,而不是一个安全的