关闭Apache的目录浏览功能

一、默认情况

默认情况下,Apache的配置文件C:\web\apache2.4\conf/httpd.conf中有如下参数: 

引用

<Directory "/var/www/html">

Options Indexes FollowSymLinks ......

</Directory>   

也就是说,在目录下没有默认首页面(如:index.html index.php等)时,可以让用户直接浏览web目录架构,这可能会导致一些重要的目录或配置文件被公开。 

通常在Web应用上也会做一些安全考虑,以Bo-Blog为例,一些目录下会有类似的文件: 

引用

# cat inc/index.php

<?php die ('Access Denied');   

这样,可以避免用户直接浏览该目录时,看到整个目录结构。但如果访问它下面的子目录就没什么作用了:

 

 

   所以,这还是不太安全。 

二、修改配置文件

安全起见,我建议还是把Indexes选项关闭比较好,方法有两种:

1、全局关闭

修改上面提到的配置文件C:\web\apache2.4\conf/httpd.conf,把: 

引用 Options Indexes FollowSymLinks   

改为:  引用 Options -Indexes FollowSymLinks   

重启httpd服务即可,这样可以把所有网站的Indexes选项都取消。 

2、修改.htaccess文件

如需要针对特定的网站取消该功能,可以先打开.htaccess支持,

修改C:\web\apache2.4\conf/httpd.conf: 

引用 <Directory "/var/www/html">

  ......

     AllowOverride None

   ......

</Directory>   

修改为: 

引用

<Directory "/var/www/html">

   ......     

  AllowOverride All

   ......

 </Directory>   

然后,在各网站主目录写入一个.htaccess文件,内容有: 

引用

# head .htaccess

Options -Indexes 

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteBase /

...... 

 保存后马上生效。  这时,访问同样的路径,就会报下面的错误提示:   

 

 

※ 从服务层面去屏蔽类似的问题,会比从应用层面解决要更安全和可靠。很多应用程序的默认设置都是比较宽松的,所以,在对外公布网站的时候,务必做好类似的安全检查,防止漏洞和隐患。


__EOF__

本文作者komomon
本文链接https://www.cnblogs.com/forforever/p/12333965.html
关于博主:喜欢读书、旅行、爬山。评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   komomon  阅读(2475)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示