当前位置: > Linux服务器 > apache >

禁止apache浏览目录

时间:2016-07-14 13:17来源:linux.it.net.cn 作者:IT

在PHP网站开发中,基于WEB服务器和PHP网站程序代码的安全考虑,我们需要对相关的目录或者文件访问权限进行控制,以防止意外情况的发生,那么我们如何来实现这种功能呢?我们可以通过Apache来实现禁止目录访问(禁止游览列出的目录或文件列表)、禁止或允许IP与域名访问目录的功能。

亲测可以的:apache 2.2.15  x86_64

在httpd.conf

找到:Options Indexes FollowSymLinks  修改成:Options  FollowSymLinks

重启aapche,应该就可以了

 

或者上面方法不行:

在根目录下新建.hatccess文件

Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
#
<IfModule mod_rewrite.c>
RewriteEngine on
# RewriteRule index.html$ index.php
RewriteRule index-([1-9]+[0-9]*).html$ index.php?p=$1
RewriteRule ([a-z]{1,})-([0-9]{1,}).html$ index.php?action=$1&id=$2
</IfModule>

环境说明

我使用的是DedeCMS DedeAmpz的PHP运行环境,PHP版本5.2.4,Apache版本2.2.4

在Apache中配置禁止目录访问,即禁止游览列出的目录/文件列表的方法

访问网站目录时Apache默认配置为可列出目录/文件列表,即当你访问http://localhost时会列出相关的目录和文件列表,我们可以通过修改Apache配置文件httpd.conf来实现禁止列出目录/文件列表,方法如下:

1、打开apache配置文件httpd.conf

2、找到

1
2
3
4
5
6
<Directory />
Options Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>

只需要修改Options Indexes为Options None即可,注:根据PHP运行环境安装包的不同,Options Indexes也有可能是Options Indexes FollowSymLinks,一并改为Options None即可。

3、保存httpd.conf,并重启Apache即可,此时再访问http://localhost时, 报apache http 403 禁止访问错误信息

Forbidden

You don’t have permission to access / on this server.

如果这些都不行:

在网站根目录里加上.htaccess文件,写指令: Options FollowSymLinks

Apache单个或多个目录禁止访问方法

这种方法通常用来禁止访问者访问后台管理目录或者程序目录,方法如下

1、打开apache配置文件httpd.conf

2、创建Directory块,比如禁止访问某个类库目录,可以这样实现

1
2
3
4
<Directory /var/www/www.leapsoul.cn/inc>
Order Deny,Allow
Deny from all
</Directory>

上述代码实现了禁止所有用户访问www.leapsoul.cn下inc目录的功能。如要实现禁止访问所有目录中inc目录的功能,只要将

1
<Directory /var/www/www.leapsoul.cn/inc>

更改为

1
<Directory /var/www/www.leapsoul.cn/*/inc>

即可。

3、重启Apache服务器。

其他说明

1、只允许或禁止某个域名进行目录访问

1
2
3
4
5
<Directory /var/www/www.leapsoul.cn/inc>
Order Deny,Allow
Deny from abc.com
Allow from apache.org
</Directory>

上述代码实现禁止abc.com域中主机访问inc目录,允许apache.org域中主机访问inc目录的功能。

2、只允许或禁止某个IP进行目录访问

1
2
3
4
5
<Directory /var/www/www.leapsoul.cn/inc>
Order Deny,Allow
Deny from 10.1.1.2
Allow from 192.168.1.0/255.255.255.0
</Directory>

上述代码实现禁止IP10.1.1.2访问www.leapsoul.cn/inc目录,允许IP192.168.1子网中的主机访问www.leapsoul.cn/inc目录的功能。

注意:Allow from 192.168.1.0/255.255.255.0等同于Allow from 192.168.1或Allow from 192.168.1.0/24

至此,通过配置Apache服务器我们可以实现禁止目录访问(列出目录或文件列表),也可以实现禁止访问单个或者多个目录,更可以对访问者进行控制,比如允许或禁止某个IP或者域名对目录进行访问,这些功能对提高和优化WEB服务器的安全性能是必不可少的方法。

 

隐藏apache版本信息

找到

ServerTokens Full
ServerSignature On

改成

ServerTokens Prod
ServerSignature off

重启apache即可

 

隐藏PHP 版本

php.ini

expose_php On
改成
expose_php Off

重启apache后,php版本在http头中隐藏了。




(责任编辑:IT)
------分隔线----------------------------