閱讀224 返回首頁    go 阿裏雲 go 技術社區[雲棲]


使用 .htaccess 文件禁用 Web 目錄列舉

確保 Apache web 服務器安全 是最重要的任務之一,特別是在你的網站剛剛搭建好的時侯。

比方說,如果你 Apache 服務目錄 (/var/www/tecmint 或 /var/www/html/tecmint) 下創建一個名為tecmint 的目錄,並且忘記在該目錄放置 index.html,你會驚奇的發現所有訪問者都可以在瀏覽器輸入 https://www.example.com/tecmint 來完整列舉所有在該目錄中的重要文件和文件夾。

本文將為你展示如何使用 .htaccess 文件禁用或阻止 Apache 服務器目錄列舉。

以下便是不存在 index.html ,且未采取防範措施前,目錄的列舉的情況。

[Apache 目錄列舉][4]

Apache 目錄列舉

首先,.htaccess  (hypertext access) 是一個文件,它可以讓站點管理員控製服務器的環境變量以及其他的重要選項,用以增強他/她的站點功能。

欲知更多關於該重要文件的信息,請閱讀以下文章,以便通過 .htaccess 的方法來確保 Apache Web 服務器的安全。

  1. 確保 Apache Web 服務器安全的 25 條 .htaccess 設置技巧
  2. 使用 .htaccess 為 Apache Web 目錄進行密碼保護

使用這一簡單方法,在站點目錄樹中的任意/每個目錄創建 .htaccess 文件,以便為站點根目錄、子目錄和其中的文件提供保護支持。

首先要 Apache 主配置文件中為你的站點啟用 .htaccess 文件支持。


  1. $ sudo vi /etc/apache2/apache2.conf #Debian/Ubuntu 係統
  2. $ sudo vi /etc/httpd/conf/httpd.conf #RHEL/CentOS 係統

然後尋找以下部分,其中 AllowOverride 指令必須設置為 AllowOverride All


  1. <Directory /var/www/html/>
  2. Options Indexes FollowSymLinks
  3. AllowOverride All
  4. </Directory>

如果已存在 .htaccess 文件,先備份(如下),假設文件在 /var/www/html/tecmint/ (並要禁用該目錄列舉):


  1. $ sudo cp /var/www/html/tecmint/.htaccess /var/www/html/tecmint/.htaccess.orig

然後你就可以在某個特定的目錄使用你喜歡的編輯器打開 (或創建) 它,以便修改。並添加以下內容來關閉目錄列舉。


  1. Options -Indexes

下一步就是重啟 Apache Web 服務器:


  1. -------- 使用 SystemD 的係統 --------
  2. $ sudo systemctl restart apache2
  3. $ sudo systemctl restart httpd
  4. -------- 使用 SysVInit 的係統 --------
  5. $ sudo /etc/init.d/apache2 restart
  6. $ sudo /etc/init.d/httpd restart

現在來驗證效果,在瀏覽器中輸入:https://www.example.com/tecmint,你會得到類似如下的信息:

[Apache 目錄列舉已禁用][5]

Apache 目錄列舉已禁用

在本文中,我們描述了如何使用 .htaccess 文件來禁用 Apache Web 服務器的目錄列舉。之後我們會介紹兩種同樣簡單的我方法來實現這一相同目的。隨時保持聯係。

原文發布時間為:2017-02-10

本文來自雲棲社區合作夥伴“Linux中國”

最後更新:2017-05-26 09:32:05

  上一篇:go  讓你的 Linux 遠離黑客(一):兩個安全建議
  下一篇:go  清華副校長楊斌談創新:創業者應“呆若木雞”,追求價值內生