Apache服务器配置文件或目录禁止访问

在PHP网站开发中,为了让网站目录文件和程序代码的安全考虑,我们必须对某些目录或者文件的访问权限进行控制,来提高网站的安全,那么我们怎样来实现这种功能呢?因此很多时候我们需要禁止服务器上某个目录或文件被访问,主要是对Apache的配置文件进行操作,有两种方法。
1.修改http.conf文件

(1).打开apache配置文件httpd.conf
(2).找到
<Directory />
Options Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
只需要修改Options IndexesOptions 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.
 Indexes 的作用就是当该目录下没有 index.html 或index.php文件时,就显示目录结构,去掉 Indexes,Apache 就不会显示该目录的列表了。
 
Apache单个或多个目录禁止访问方法
这种方法通常用来禁止访问者访问后台管理目录或者程序目录,方法如下
(1).打开apache配置文件httpd.conf
(2).创建Directory块,比如禁止访问某个类库目录,可以这样实现
<Directory /var/wwww/inc>
    Order Deny,Allow
    Deny from all
</Directory>
上述代码实现了禁止所有用户访问/var/www/inc目录的功能。如要实现禁止访问所有目录中inc目录的功能,只要将
更改为
<Directory /var/www/*/inc>
(3).重启Apache服务器。即可。
 
其他说明
(1).只允许或禁止某个域名进行目录访问
<Directory /var/www/inc>
    Order Deny,Allow
    Deny from abc.com 
    Allow from apache.org
</Directory>
(2).只允许或禁止某个IP进行目录访问上述代码实现禁止 abc.com域中主机访问inc目录,允许 apache.org域中主机访问inc目录的功能。
<Directory /var/www/inc>
    Order Deny,Allow
    Deny from 10.1.1.2
    Allow from 192.168.1.0/255.255.255.0
</Directory>
注意 :Allow from 192.168.1.0/255.255.255.0等同于Allow from 192.168.1或Allow from 192.168.1.0/24上述代码实现禁止IP10.1.1.2访问inc目录,允许IP192.168.1子网中的主机访问 inc目录的功能。
 
2.添加.htaccess文件

上面那种方法在我的Mac下好像实现起来有问题,修改了httpd.conf文件之后重启Apache,无法访问任何本地网站链接了,应该还是修改有问题,还没摸索出来。之后便使用了另外一个方法,其实我感觉这个方法更方便。如果只是想禁止某一个目录或某个目录下的文件,只需要在该目录下新建一个.htaccess文件,然后输入一些配置信息即可。
先说明一下什么是.htaccess文件,.htaccess是一个纯文本文件,它里面存放着Apache服务器配置相关的指令。.htaccess主要的作用有:URL重写、自定义错误页面、MIME类型配置以及访问权限控制等。主要体现在伪静态的应用、图片防盗链、自定义404错误页面、阻止/允许特定IP/IP段、目录浏览与主页、禁止访问指定文件类型、文件密码保护等。.htaccess的用途范围主要针对当前目录。
这里我们就关注使用.htaccess文件来限制访问某个目录或该目录下的文件。
 
(1).在进行.htaccess文件配置之前,需要先确定httpd.conf文件是否配置了允许.htaccess文件的作用。因为要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。
从安全性考虑,根目录的AllowOverride属性一般都配置成不允许任何Override,即:
< Directory /> 
AllowOverride None 
< /Directory>
在我本机Mac电脑上,由于使用1中的方法新增<Directory></Directory>导致错误,不知什么原因,应该是我还没搞明白。因此我就修改了其原有的一个<Directory></Directory>,如下图所示,将AllowOverride none 改为了 AllowOverride All,出于安全性考虑最好是想在哪个目录下添加.htaccess文件就增加一个<Directory></Directory>,并配置目录路径,添加AllowOverride All。(这个还需后续摸索成功)在 AllowOverride 设置为 None 时,.htaccess 文件将被完全忽略。当此指令设置为 All 时,所有具有 “.htaccess” 作用域的指令都允许出现在 .htaccess 文件中。
 
还需要注明的是,在购买的阿里虚拟主机上,好像不必对httpd.conf进行配置,.htaccess文件即可生效?
 
(2).对httpd.conf配置完之后,便可以在需要设置访问权限的目录下新建一个.htaccess文件,添加相关的配置代码即可。比如如果想禁止所在目录以及其目录下的所有文件访问。可进行如下配置:
order allow,deny 
deny from all
如果只是想禁止所在目录下的特定格式的文件可进行如下配置: 
<Files  ~ "\.(pdf|psd|zip|rar)$">
 Order allow,deny
 Deny from all
</Files>

输入Files后的波浪线表示启用“正则表达式”,简单的写法有:<Files *>,表示禁止访问该目录下所有文件。

转载于:https://www.cnblogs.com/redstonecmx/p/4952007.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Apache服务器搭建和加固,可以按照以下步骤进行操作: 1. 安装Apache服务器软件,如httpd、nginx等; 2. 配置Apache服务器,包括虚拟主机、目录权限等; 3. 修改Apache配置文件,进行安全加固,如禁止目录访问、隐藏Apache版本信息、配置Apache的ACL等; 4. 启用防火墙,限制Apache服务器访问范围,只允许特定的IP地址或IP段访问Apache服务器; 5. 定期更新Apache服务器软件及操作系统补丁,保持服务器的安全性。 以下是一些Apache服务器配置文件的安全加固方法: 1. 禁止目录访问:在Apache配置文件中添加以下内容,禁止通过URL访问文件系统中的目录: ``` Options -Indexes ``` 2. 隐藏Apache版本信息:在Apache配置文件中添加以下内容,隐藏Apache版本信息: ``` ServerSignature Off ServerTokens Prod ``` 其中,ServerSignature Off表示关闭Apache服务器的版本信息,ServerTokens Prod表示隐藏Apache服务器的版本信息。 3. 配置Apache的ACL:在Apache配置文件中添加以下内容,配置Apache的ACL: ``` <Directory "/var/www/html"> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 192.168.1.0/24 </Directory> ``` 其中,Options FollowSymLinks表示启用符号链接,AllowOverride None表示禁用.htaccess文件,Order deny,allow表示先禁止,后允许,Deny from all表示拒绝所有连接,Allow from 192.168.1.0/24表示允许IP地址段为192.168.1.0/24的主机连接。 需要注意的是,在Apache服务器搭建和加固过程中,一定要保证Apache服务器软件及操作系统是最新的版本,并且定期更新补丁,以避免被已知漏洞攻击的风险。同时,还需要定期检查Apache服务器的日志,及时发现和处理异常情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值