`
gaoyuntao2005
  • 浏览: 303800 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Apache的Order Allow,Deny 详解(转)

 
阅读更多
Allow和Deny可以用于apache的conf文件或者.htaccess文件中(配合Directory, Location, Files等),用来控制目录和文件的访问授权。

所以,最常用的是:
Order Deny,Allow
Allow from All

注意“Deny,Allow”中间只有一个逗号,也只能有一个逗号,有空格都会出错;单词的大小写不限。上面设定的含义是先设定“先检查禁止设定,没有禁止的全部允许”,而第二句没有Deny,也就是没有禁止访问的设定,直接就是允许所有访问了。这个主要是用来确保或者覆盖上级目录的设置,开放所有内容的访问权。

按照上面的解释,下面的设定是无条件禁止访问:
Order Allow,Deny
Deny from All

如果要禁止部分内容的访问,其他的全部开放:
Order Deny,Allow
Deny from ip1 ip2
或者
Order Allow,Deny
Allow from all
Deny from ip1 ip2

apache会按照order决定最后使用哪一条规则,比如上面的第二种方式,虽然第二句allow允许了访问,但由于在order中allow不是最后规则,因此还需要看有没有deny规则,于是到了第三句,符合ip1和ip2的访问就被禁止了。注意,order决定的“最后”规则非常重要,下面是两个错误的例子和改正方式:

Order Deny,Allow
Allow from all
Deny from domain.org
错误:想禁止来自domain.org的访问,但是deny不是最后规则,apache在处理到第二句allow的时候就已经匹配成功,根本就不会去看第三句。
解决方法:Order Allow,Deny,后面两句不动,即可。

Order Allow,Deny
Allow from ip1
Deny from all
错误:想只允许来自ip1的访问,但是,虽然第二句中设定了allow规则,由于order中deny在后,所以会以第三句deny为准,而第三句的范围中又明显包含了ip1(all include ip1),所以所有的访问都被禁止了。
解决方法一:直接去掉第三句。
解决方法二:
Order Deny,Allow
Deny from all
Allow from ip1

 

下面是测试过的例子:
--------------------------------
Order deny,allow
allow from all
deny from 219.204.253.8
#全部都可以通行
-------------------------------
Order deny,allow
deny from 219.204.253.8
allow from all
#全部都可以通行
-------------------------------
Order allow,deny
deny from 219.204.253.8
allow from all
#只有219.204.253.8不能通行
-------------------------------
Order allow,deny
allow from all
deny from 219.204.253.8
#只有219.204.253.8不能通行
-------------------------------
-------------------------------
Order allow,deny
deny from all
allow from 219.204.253.8
#全部都不能通行
-------------------------------
Order allow,deny
allow from 219.204.253.8
deny from all
#全部都不能通行
-------------------------------
Order deny,allow
allow from 219.204.253.8
deny from all
#只允许219.204.253.8通行
-------------------------------
Order deny,allow
deny from all
allow from 219.204.253.8
#只允许219.204.253.8通行
-------------------------------
--------------------------------
Order deny,allow
#全部都可以通行(默认的)
-------------------------------
Order allow,deny
#全部都不能通行(默认的)
-------------------------------
Order allow,deny
deny from all
#全部都不能通行
-------------------------------
Order deny,allow
deny from all
#全部都不能通行
-------------------------------
对于上面两种情况,如果换成allow from all,则全部都可以通行!
-------------------------------
Order deny,allow
deny from 219.204.253.8
#只有219.204.253.8不能通行
-------------------------------
Order allow,deny
deny from 219.204.253.8
#全部都不能通行
-------------------------------
Order allow,deny
allow from 219.204.253.8
#只允许219.204.253.8通行
-------------------------------
Order deny,allow
allow from 219.204.253.8
#全部都可以通行
-------------------------------
-------------------------------
order deny,allow
allow from 218.20.253.2
deny from 218.20
#代表拒绝218.20开头的IP,但允许218.20.253.2通过;而其它非218.20开头的IP也都允许通过。
-------------------------------
order allow,deny
allow from 218.20.253.2
deny from 218.20
#和上面的差不多,只是掉换的order语句中的allow、deny先后顺序,但最终结果表示全部都拒绝!

form:http://hi.baidu.com/enjoypain/blog/item/f48c7aecdba298d12f2e21ac.html

前段时间做了个Apache的HTTP代理服务器,其中的order allow,deny这部分弄的不太懂,于是上网找资料看,谁知道越看越糊涂,其中有些难以分辨对错甚至是误导。就像破解windows系统密码的一些文章那样,很多都是人云亦云的,并没有经过测试。废话少说,先把我经过测试后分析总结出来的结论show出来,相信这对大家的理解非常有帮助。

分享到:
评论

相关推荐

    Apache中的Order Allow,Deny用法详解

    主要介绍了Apache中的Order Allow,Deny用法,结合实例较为详细的分析了Apache中Order Allow,Deny的具体作用及使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下

    Apache 的 order deny allow 设置说明

    所以,最常用的是: Order Deny,Allow Allow from All 注意“Deny,Allow”中间只有一个逗号,也只能有一个逗号,有空格都会出错;单词的大小写不限。 上面设定的含义是先设定“先检查禁止设定,没有禁止的全部允许”...

    Apache配置参数deny和allow的使用实例.docx

    Apache配置参数deny和allow的使用实例.docx

    Apache配置参数deny和allow的使用实例

    由于产品的需要,最近在配置apache的负载均衡功能,但是... Order allow,deny #1  Allow from all #2  deny from 192.9.200.69 #3 以前使用这两个参数的时候比较混乱,具体不太清楚到底是哪个参数在起作用。通过实

    Apache配置文件中的deny与allow小结

    主要介绍了Apache配置文件中的deny与allow小结,本文着重讲解了deny和allow的执行顺序问题,需要的朋友可以参考下

    Apache配置详解(最好的APACHE配置教程)

    Order allow,deny Allow from all </Directory> 在上面这段目录属性配置中,主要有下面的选项: Options:配置在特定目录使用哪些特性,常用的值和基本含义如下: ExecCGI: 在该目录下允许执行CGI脚本。 ...

    操作系统安全:配置etchosts.allow及etchosts.deny.docx

    实验一:配置/etc/hosts.allow及/etc/hosts.deny 一、实验目的 了解/etc/hosts.allow与/etc/hosts.deny 掌握/etc/hosts.allow与/etc/hosts.deny的配置 二、实验内容与步骤 简介 /etc/hosts.allow与/etc/hosts.deny...

    操作系统安全:详解etc hosts.deny .docx

    详解/etc/hosts.deny 简介 ?/etc/hosts.allow与/etc/hosts.deny简介 这两个文件是tcpd服务器的配置文件,tcpd服务器可以控制外部IP对本机服务的访问。这两个配置文件的格式如下: #服务进程名:主机列表:当规则匹配时...

    XAMPP启用局域网访问.doc

    allow Deny from all Allow from ::1 127.0.0.1/8 ErrorDocument 403 /error/HTTP_XAMPP_FORBIDDEN.html.var # Close XAMPP sites here Order deny,allow Deny from all Allow from ::1 127.0.0.1/8

    apache安装

    Order deny,allow Deny from all 改成 Options FollowSymLinks AllowOverride None 3,启动时报 httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.2.116 ...

    Apache下禁止特定目录执行PHP 提高服务器安全性

    在可写文件夹的目录下,建一个.htaccess文件,内容为: 代码如下:<Files> Order allow,deny Deny from all </Files> 方式二:修改Apache配置文件,适用于有服务器管理权限。 配置中增加如下内容: 代码如下:”> ...

    禁止apache显示目录索引的常见方法(apache禁止列目录)

    禁止Apache显示目录索引,禁止Apache显示目录结构列表,禁止...1)修改目录配置: 代码如下:<Directory>Options Indexes FollowSymLinks # 修改为: Options FollowSymLinks AllowOverride None Order allow,deny 

    ecshop源码

    最新版本的ecshop源码,(一),环境检测和开启伪静态 要使用url路由,以下条件是必备的,缺一不可: 1,服务器环境本身支持url... Order allow,deny Allow from all 注意:确保 AllowOverride 为 All 重启服务即可。

    Apache Tomcat 7.0.90 发布,开源 Web 应用服务器

    Add the RemoteCIDRFilter and RemoteCIDRValve that can be used to allow/deny requests based on IPv4 and/or IPv6 client address where the IP ranges are defined using CIDR notation. Based on a patch by ...

    ZendFramework 2 实例(增、删、改操作)

    ZendFramework 2 实例(增、删、改操作) 环境 ...apache 2.2 httpd.conf ...LoadModule php5_module "C:/Program Files/php/php5apache2_2.dll" ... Order allow,deny Allow from all </VirtualHost>

    ZendFramework 2.1.3 实例(相册增、删、改操作)

    ZendFramework 2.1.3 实例(增、删、改操作) 环境 ... apache 2.2 httpd.conf ...LoadModule php5_module "C:/Program Files/php/php5apache2_2.dll" ...Order allow,deny Allow from all </VirtualHost>

Global site tag (gtag.js) - Google Analytics