Apache:Web根目录和别名中的文件夹之间的安全性差异?

Apache:Web根目录和别名中的文件夹之间的安全性差异?

当使用 Apache 提供站点服务时,我知道有两种方法可以将一些内容放置在“servername/foo”处:

  1. 将其放置在 Web 根目录中名为“foo”的文件夹下
  2. 创建别名

作为 #2 的示例,XAMPP 在配置文件中有以下语句:

Alias /phpmyadmin "C:/xampp/phpMyAdmin/"

<Directory "C:/xampp/phpMyAdmin">
   AllowOverride AuthConfig
   Order allow,deny
   Allow from all
</Directory>

...这意味着“如果服务器是 localhost,并且有人访问 localhost/phpmyadmin,则向他们显示 C:/xampp/phpMyAdmin 的内容,给定遵循权限“”。

在此示例中,假设可以从同一 URL 访问 phpMyAdmin,从安全角度来看,它是否位于 Web 根文件夹中或只是看起来好像位于 Web 根文件夹中重要吗?

答案1

对于“常规”(静态)Apache,如果您将示例缩小到严格的 1:1 场景:不,这无关紧要。假设您混合使用并忘记了哪些权限在哪里继承,您可能会暴露一些您不想暴露的东西。

我认为最重要的是,它确实让一个单独的代码分支更容易被一个用户拥有(并因此可能被写入),而不是由你用于 Web 服务器和文档根目录的用户拥有。这是可靠打包所必需的,而可靠打包是长期安全的核心部分。

还要记住,apache 模块非常灵活。因此,虽然核心 apache 内容不会有任何不同,但第三方身份验证模块甚至 php 设置(如 open_basedir 和 include_path)可能会改变行为。

答案2

不。

Directory 语句适用于 DIRECTORY。此目录位于系统中的哪个位置并不重要。

请注意,问题中的缩进暗示别名和目录行之间存在某种关系,但实际上并不存在。

相关内容