
我正在強化我的 Apache 伺服器配置,想知道它是否使用 .htaccess 和 .htpasswd 之外的任何其他"^.ht.+"
檔案?
答案1
阿帕奇有嗎?不。
它通常使用的唯一一個是.htaccess
,但這實際上只是由於預設AccessFileName
設定AccessFileName .htaccess
- 更改該配置,Apache 將不會對以 . 開頭的檔案有任何特別的興趣.ht
。
.htpasswd
這不是一個正常的標準,甚至不是一個好主意;一般建議是將驗證檔案保留在 Web 根目錄之外,因為還有其他方法(遠端檔案包含漏洞)可以繞過 Apache 的存取限制來取得檔案的內容。
其他人也這樣嗎?或許。
.ht*
出於許多相同的原因,“這是某種受限制/無法訪問的文件”的常見用法被某些人/內容/Web 應用程式所期望/濫用,.htaccess
許多人將其誤解為“正確”的訪問位置控制和重寫規則,儘管事實上它並不是為此目的。因此,如果您停用預設行為<Files ~ "^\.ht">
(為什麼需要執行此操作以進行強化?),請確保您的內容不會濫用該檔案名稱約定來隱藏內容。
答案2
.htaccess
AccessFileName
是apache 使用的預設值。 「.htpasswd」沒有什麼特別之處,只是大多數人都使用它,因此它使 ACL 更容易阻止對它們的存取。沒有任何內容表明您需要使用這些文件名,並且如果您有權訪問 httpd.conf 文件,您實際上根本不應該使用它們,因為它們會減慢對目錄的存取速度。它們很好地允許無權訪問伺服器配置的人員進行覆蓋存取。
話雖這麼說,如果您沒有透過AccessFileName
配置中的 using 指令更改預設值,並且已將所有密碼檔案命名為 .htpasswd,那麼您應該可以很好地使用點檔案。
答案3
您可以透過以下方法檢查您是否正在使用任何其他 .htaccess:核心 - Apache HTTP 伺服器,這也是任何 apache 都應該使用的,因為它會阻止人們訪問它:
#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</Files>