使用 .htaccess 檔案禁用 Web 目錄列舉
確保 Apache web 伺服器安全 是最重要的任務之一,特別是在你的網站剛剛搭建好的時侯。
比方說,如果你 Apache 服務目錄 (/var/www/tecmint
或 /var/www/html/tecmint
) 下建立一個名為 tecmint
的目錄,並且忘記在該目錄放置 index.html
,你會驚奇的發現所有訪問者都可以在瀏覽器輸入 http://www.example.com/tecmint 來完整列舉所有在該目錄中的重要檔案和資料夾。
本文將為你展示如何使用 .htaccess
檔案禁用或阻止 Apache 伺服器目錄列舉。
以下便是不存在 index.html
,且未採取防範措施前,目錄的列舉的情況。
[][4]
Apache 目錄列舉
首先,.htaccess
(hypertext access) 是一個檔案,它可以讓站點管理員控制伺服器的環境變數以及其他的重要選項,用以增強他/她的站點功能。
欲知更多關於該重要檔案的資訊,請閱讀以下文章,以便透過 .htaccess
的方法來確保 Apache Web 伺服器的安全。
使用這一簡單方法,在站點目錄樹中的任意/每個目錄建立 .htaccess
檔案,以便為站點根目錄、子目錄和其中的檔案提供保護支援。
首先要 Apache 主配置檔案中為你的站點啟用 .htaccess
檔案支援。
$ sudo vi /etc/apache2/apache2.conf #Debian/Ubuntu 系統
$ sudo vi /etc/httpd/conf/httpd.conf #RHEL/CentOS 系統
然後尋找以下部分,其中 AllowOverride
指令必須設定為 AllowOverride All
。
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
如果已存在 .htaccess
檔案,先備份(如下),假設檔案在 /var/www/html/tecmint/
(並要禁用該目錄列舉):
$ sudo cp /var/www/html/tecmint/.htaccess /var/www/html/tecmint/.htaccess.orig
然後你就可以在某個特定的目錄使用你喜歡的編輯器開啟 (或建立) 它,以便修改。並新增以下內容來關閉目錄列舉。
Options -Indexes
下一步就是重啟 Apache Web 伺服器:
-------- 使用 SystemD 的系統 --------
$ sudo systemctl restart apache2
$ sudo systemctl restart httpd
-------- 使用 SysVInit 的系統 --------
$ sudo /etc/init.d/apache2 restart
$ sudo /etc/init.d/httpd restart
現在來驗證效果,在瀏覽器中輸入:http://www.example.com/tecmint,你會得到類似如下的資訊:
[][5]
Apache 目錄列舉已禁用
在本文中,我們描述瞭如何使用 .htaccess
檔案來禁用 Apache Web 伺服器的目錄列舉。之後我們會介紹兩種同樣簡單的我方法來實現這一相同目的。隨時保持聯絡。
像往常一樣,在下方反饋表單中給我們傳送關於本文的任何想法。
作者簡介:
Aaron Kili 是一名 Linux 和 F.O.S.S 忠實擁護者、未來的 Linux 系統管理員、Web 開發者,目前是 TecMint 的原創作者,熱衷於計算機並樂於知識分享。
譯者簡介:
GHLandy - 生活中所有歡樂與苦悶都應藏在心中,有些事兒註定無人知曉,自己也無從說起。
via: http://www.tecmint.com/disable-apache-directory-listing-htaccess/
相關文章
- .htaccess檔案使用
- 沒有目錄建目錄,沒有檔案建檔案
- Htaccess檔案用法總結
- nginx配置web訪問以及檢視目錄檔案NginxWeb
- 使用 ASMCMD 工具管理ASM目錄及檔案ASM
- 18、檔案與目錄
- 清理bdump目錄檔案
- Python 檔案、目錄操作Python
- Linux 檔案與目錄Linux
- 列出目錄/檔案命令ls
- Linux — 檔案、目錄管理Linux
- 檔案、目錄防寫(轉)
- 通過配置檔案(.htaccess)實現檔案上傳
- 使用命令列建立Maven的專案或模組目錄命令列Maven
- 刪除目錄及目錄下所有檔案與子目錄 (轉)
- 隱藏任意程式,目錄檔案,登錄檔,埠
- 使用SSHFS檔案系統遠端掛載目錄
- Linux中使用rsync——檔案和目錄排除列表Linux
- 在JUnit中使用@Rule測試檔案和目錄
- 使用adpatch打patch時log檔案生成目錄
- Linux下Web目錄和檔案安全許可權設定LinuxWeb
- Maven配置-使用Maven建立WEB專案支援Tomcat目錄部署MavenWebTomcat
- gitignore 忽略目錄下檔案僅保留目錄形態Git
- 8.var目錄下的檔案和目錄詳解
- IIS虛擬目錄掛載檔案伺服器目錄伺服器
- Linux檔案系統-目錄和檔案管理Linux
- C語言檔案與目錄(五)檔案鎖C語言
- Linux檔案及目錄管理Linux
- Linux檔案系統、目錄Linux
- 檔案包含之銘感目錄
- 【Linux】檔案系統目錄Linux
- Java XML檔案解析書目錄JavaXML
- dirlisting目錄檔案列表索引索引
- 上傳檔案並目錄打散
- ORACLE directory 目錄讀寫檔案Oracle
- php複製目錄及檔案PHP
- Linux 檔案與目錄管理Linux
- PHP遍歷目錄和檔案PHP