Apache:網路根目錄和別名中的資料夾之間的安全差異?

Apache:網路根目錄和別名中的資料夾之間的安全差異?

當使用 Apache 提供網站服務時,我知道有兩種方法可以將一些內容放置在「servername/foo」中:

  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 的內容,給定以下權限」。

在此範例中,假定可以從相同 URL 存取 phpMyAdmin,從安全角度來看,它是否位於 Web 根資料夾中或只是使用別名以使其看起來像這樣,這很重要嗎?

答案1

對於「常規」(靜態)apache,如果您將範例縮小到嚴格的 1:1 場景:不,沒關係。假設,如果您進行混合和混搭,並且不知道在哪裡繼承了哪些權限,則可能會暴露一些您無意的內容。

我認為最重要的是,與用於網頁伺服器和文檔根目錄的使用者相比,它確實使單獨的使用者更容易擁有(並可能因此寫入)不同的程式碼分支。這是可靠包裝所必需的,而可靠包裝是長期安全性的核心部分。

還要記住,apache 模組可以非常靈活。因此,雖然核心 apache 的行為不會有任何不同,但第三方身份驗證模組甚至像 open_basedir 和 include_path 這樣的 php 設定可能會改變行為。

答案2

不。

Directory 語句適用於 DIRECTORY。該目錄存在於系統中的哪個位置並不重要。

請注意,您問題上的縮排意味著別名和目錄行之間存在某種關係,但實際上並不存在。

相關內容