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

RedstoneCMX

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

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

1.修改http.conf文件


(1).打开apache配置文件httpd.conf

(2).找到

<pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"><Directory />
Options Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory></pre>

只需要修改****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.

Indexes 的作用就是当该目录下没有 index.html 或index.php文件时,就显示目录结构,去掉 Indexes,Apache 就不会显示该目录的列表了。

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

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

(1).打开apache配置文件httpd.conf

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

<pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"><Directory /var/wwww/inc>
Order Deny,Allow
Deny from all
</Directory></pre>

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

更改为

<pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"><Directory /var/www/*/inc></pre>

(3).重启Apache服务器。即可。

其他说明

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

<pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"><Directory /var/www/inc>
Order Deny,Allow
Deny from abc.com
Allow from apache.org
</Directory></pre>

(2).只允许或禁止某个IP进行目录访问上述代码实现禁止abc.com域中主机访问inc目录,允许apache.org域中主机访问inc目录的功能。

<pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"><Directory /var/www/inc>
Order Deny,Allow
Deny from 10.1.1.2
Allow from 192.168.1.0/255.255.255.0
</Directory></pre>

注意: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,即:

<pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">< Directory />
AllowOverride None
< /Directory></pre>

在我本机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文件,添加相关的配置代码即可。比如如果想禁止所在目录以及其目录下的所有文件访问。可进行如下配置:

<pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">order allow,deny
deny from all</pre>

如果只是想禁止所在目录下的特定格式的文件可进行如下配置:

<pre style="margin-top: 0px; margin-bottom: 0px; white-space: pre-wrap; overflow-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;"><Files ~ ".(pdf|psd|zip|rar)$">
Order allow,deny
Deny from all
</Files></pre>

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269