Apache 目录权限的设置

本文详细介绍了Apache目录权限的设置,包括主目录、子目录的浏览限制、后缀文件的下载控制以及目录访问控制规则。同时强调了目录浏览的安全风险及如何通过配置避免这些风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Apache 目录权限的设置
# 这是我创建的一个虚拟主机跟虚拟目录的配置
NameVirtualHost *:80
<VirtualHost *:80>
     ServerName www.abc.com
     DocumentRoot /var/www/html
     <Directory "/var/www/html">
          Options -Indexes FollowSymLinks          
## 这段我定义了主目录不能被浏览
          AllowOverride None
          Order allow,deny
          Allow from all
     </Directory>
     <Directory "/var/www/html/download">
          Options Indexes FollowSymLinks          ## 但是我又指定我的 download 子目录可以被浏览
          AllowOverride None
          Order allow,deny
          Allow from all
     </Directory>
     <FilesMatch ".(txt|exe|ipa|apk)">             ## 这里是定义我的这些后缀文件可以下载,而不是直接打开 例如 .txt
          ForceType application/octet-stream
          Header set Content-Disposition attachment
     </FilesMatch>
</VirtualHost>

# Options -Indexes FollowSymLinks    定义目录使用哪些特性

Indexes          允许目录浏览。当客户仅指定要访问的目录,但没有指定要访问目录下的哪个文件,而且目录下不存在默认文档时,Apache 会以超文本的形式返回目录中的文                             件、子目录列表  如图:

(当允许主目录浏览时,如并没有出现目录列表而是出现 Apache 自带的测试页面,将 /etc/httpd/conf.d/welcome.conf 改名或者删除,重启 Apache 即可)

MultiViews       MultiViews 是 Apache 的一个智能特性。当客户访问目录中一个不存在的对象时,如:http://ip/download/a 这时 Apache 会查找目录下所有 a.* 的文件并返回给                             客户  ## 这个特性我测试发现不好使!!!大家注意一下

All                      All 包含了除 MultiViews 之外的所有特性,如果没有 Options 语句,默认为 All

ExecCGI          允许在该目录下执行 CGI 脚本

FollowSymLinks        允许在该目录中使用符号连接

Includes                      允许服务器端包含功能 (这是啥意思 ???

IncludesNoExec        允许服务器端包含功能,但禁用执行 CGI 脚本

## 允许目录浏览会将 web 站点的文件夹、文件名结构暴露给黑客,并允许黑客浏览文件,所以指定该权限会带来安全隐患。非特殊情况应禁用此特性。可以在此特性前加 - ,例如:Options -Indexes FollowSymLinks

# AllowOverride None      
  此选项用于定义每个目录下 .htaccess (访问控制)文件中的指定类型。尽量避免使用 .htaccess 文件,所以设置为 None 。目录权限的设置放在主置文件 httpd.conf 的<Directory "path">和</Directory>语句之间。

# Order allow,deny          
  Order 选项定义缺省的访问权限与 Allow 和 Deny 语句的处理顺序。Allow 、Deny 语句可以针对客户机的域名或IP地址定义是否可以访问服务器。
  Allow,deny : 缺省禁止所有客户机访问,因为 Allow 在 Deny 前被匹配,如果条件既匹配 Allow 又匹配 Deny ,则 Deny 生效。(后者覆盖前者)
  Deny,Allow : 缺省允许所有客户机访问,因为 Deny 在 Allow 前被匹配,如果条件既匹配 Deny 又匹配 Allow ,则 Allow生效。(后者覆盖前者)

举例说明:
Order Allow,deny
Allow from all

##允许所有客户机访问,因为允许了所有,所以匹配不到 Deny
Order Deny,allow
Deny from abc.com
Deny from 192.168.2.99

##拒绝 abc.com、192.168.2.99 访问,允许其余客户机访问
Order Allow,deny
Allow from 192.168.2.0/24

##因为只允许 192.168.2.0/24 的客户机访问,所以拒绝了其余的
Order Deny,allow
Allow from 192.168.2.0/24

##允许所有客户机访问,因为没有匹配到拒绝,所有允许 2.0/24 还有其余的
Order Allow,deny
Allow from 192.168.2.0/24
Deny from 192.168.2.99

## 先匹配只允许 2.0/24 网段,然后拒绝 2.99 客户机
Order Deny,allow
Allow from 192.168.2.0/24
Deny from 192.168.2.99

## 先匹配拒绝 2.99 客户机,然后允许 2.0/24 网段和其余所有。所以这是允许所有客户机访问


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值