使用 .htaccess 文件禁用 Web 目录列举

简介:

确保 Apache web 服务器安全 是最重要的任务之一,特别是在你的网站刚刚搭建好的时侯。

比方说,如果你 Apache 服务目录 (/var/www/tecmint 或 /var/www/html/tecmint) 下创建一个名为tecmint 的目录,并且忘记在该目录放置 index.html,你会惊奇的发现所有访问者都可以在浏览器输入 http://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

现在来验证效果,在浏览器中输入:http://www.example.com/tecmint,你会得到类似如下的信息:

[Apache 目录列举已禁用][5]

Apache 目录列举已禁用

在本文中,我们描述了如何使用 .htaccess 文件来禁用 Apache Web 服务器的目录列举。之后我们会介绍两种同样简单的我方法来实现这一相同目的。随时保持联系。

原文发布时间为:2017-02-10

本文来自云栖社区合作伙伴“Linux中国”

相关文章
|
2月前
|
数据可视化 Shell Linux
shell+crontab+gitlab实现ecs服务器文件的web展示
本文通过把ecs服务器上的文件定时上传至gitlab,实现文件的页面可视化和修改历史。技术点:shell、crontab、gitlab。
51 3
|
1月前
|
网络协议 Shell 网络安全
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
163 0
|
5月前
|
数据库
如何在web.config文件中配置连接Access数据库?
如何在web.config文件中配置连接Access数据库?
34 0
|
6月前
|
前端开发 UED
关于 Web 应用的内联 css 和 scss 文件里的 var 关键字用法
关于 Web 应用的内联 css 和 scss 文件里的 var 关键字用法
75 0
|
1月前
|
Java 应用服务中间件
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
解决tomcat启动报错:无法在web.xml或使用此应用程序部署的jar文件中解析绝对的url [http:java.sun.com/jsp/jstl/core]
128 1
|
2月前
|
存储 数据库 Python
Django教程第6章 | web开发实战-文件上传(导入文件、上传图片)
web应用实战:导入文件解析到DB,上传图片【2月更文挑战第25天】
56 0
Django教程第6章 | web开发实战-文件上传(导入文件、上传图片)
|
3月前
springmvc web.xml文件配置中文编码过滤器
springmvc web.xml文件配置中文编码过滤器
|
4月前
|
安全 中间件 应用服务中间件
ctfshow-web4(文件包含&日志注入)
ctfshow-web4(文件包含&日志注入)
82 0
|
4月前
|
存储 安全 C++
C++ LibCurl实现Web隐藏目录扫描
LibCurl是一个开源的免费的多协议数据传输开源库,该框架具备跨平台性,开源免费,并提供了包括HTTP、FTP、SMTP、POP3等协议的功能,使用libcurl可以方便地进行网络数据传输操作,如发送HTTP请求、下载文件、发送电子邮件等。它被广泛应用于各种网络应用开发中,特别是涉及到数据传输的场景。本章将是`《C++ LibCurl 库的使用方法》`的扩展篇,在前一篇文章中我们简单实现了LibCurl对特定页面的访问功能,本文将继续扩展该功能,并以此实现Web隐藏目录扫描功能。
28 0
C++ LibCurl实现Web隐藏目录扫描
|
5月前
|
PHP
.htaccess web php 文件详解
.htaccess web php 文件详解
22 0