Apache: Web ルートとエイリアスのフォルダー間のセキュリティの違い?

Apache: Web ルートとエイリアスのフォルダー間のセキュリティの違い?

Apache を使用してサイトを提供する場合、コンテンツを「servername/foo」に配置する方法は 2 つあります。

  1. それを「foo」というフォルダの下のWebルートに配置します。
  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の内容を表示します。次の権限

この例では、phpMyAdminが同じURLからアクセスできると仮定すると、セキュリティの観点から、Web ルート フォルダー内にあるか、または単にそのように見えるようにエイリアス化されているかは重要ですか?

答え1

「通常の」(静的) Apache の場合、例を厳密な 1:1 シナリオに絞り込むと、問題はありません。仮に、混在させてマッシュアップし、どの権限がどこに継承されているかを把握できなくなった場合、意図しないものを公開してしまう可能性があります。

最も重要なのは、Web サーバーやドキュメント ルートに使用するユーザーとは別のユーザーが、個別のコード ブランチを所有 (および書き込み可能) することが容易になることだと思います。これは信頼性の高いパッケージングに必要であり、信頼性の高いパッケージングは​​長期的なセキュリティの中核をなすものです。

また、Apache モジュールは非常に柔軟であることも覚えておいてください。したがって、Apache コアの機能の動作は変わりませんが、サードパーティの認証モジュールや、open_basedir や include_path などの PHP 設定によって動作が変わる可能性があります。

答え2

いいえ。

Directory ステートメントは DIRECTORY に適用されます。このディレクトリがシステム内のどこに存在するかは関係ありません。

質問のインデントにより、エイリアス行とディレクトリ行の間に何らかの関係があるように思われますが、実際にはそのような関係はありません。

関連情報