对于一些比较重要的网站内容,除了可以使用用户认证限制访问之外,还可以通过其他一些方法做到限制,比如可以限制IP,也可以限制 user_agent。限制IP指的是限制访问网站的来源P,而限制user_agent,通常用来限制恶意或者不正常的请求。

1.访问控制 – Directory

vim /usr/local/apac2.4/conf/extra/httpd-vhosts.conf
//首先来配置虚拟主机文件
//配置内容如下

image.png

使用< Directory>来指定要限制访问的目录, order定义控制顺序,哪个在前面就先匹配哪个规则。在本例中deny在前面,所以先匹配 Deny from all,这样所有的来源IP都会被限制,然后匹配A1 low from127.0.0,1,这样又允许了127.0.0.1这个IP。最终的效果是,只允许来源IP为127.00.1的访问。下面为验证过程:

image.png
//先重新加载一下服务
image.png

image.png
//这个ip被限制访问了,所以显示403。
image.png

2.访问控制 – FilesMatch

访问控制也可以单独针对某个文件来做限制:
具体配置如下:
vim /usr/local/apac2.4/conf/extra/httpd-vhosts.conf
image.png

3.访问控制 – 禁止php解析

对于使用PHP语言编写的网站,有一些目录是有需求上传文件的,。如果网站代码有漏洞,让黑客上传了一个用PHP代码写的木马,由于网站可以执行PHP程序,最终会让黑客拿到服务器权限。为了避免这种情况发生,我们需要把能上传文件的目录直接禁止解析PHP代码,配置如下:
vim /usr/local/apac2.4/conf/extra/httpd-vhosts.conf
image.png
image.png
//重新加载一下服务,配置内容才会生效。
image.png
//笔者这里把之前刚配置完LANP环境时候,用来测试php是否能正常解析的文件复制过来。
image.png
//这说明tset.php是不能正常解析的。

4.访问控制 – user_agent

//user_agent为游览器标

vim /usr/local/apac2.4/conf/extra/httpd-vhosts.conf
//配置虚拟主机文件,配置内容如下
image.png
这个需求也用到了 rewrite模块,% Http usEr AgenT}为 user_agent的内置变量,在本例中当user_agent匹配cur1或者baidu.com时,都会触发下面的规则。方括号中的0R表示“或者”,NC表示“不区分大小写”,F相当于 Forbidden。验证过程如下:
image.png
//先来重新加载一下服务
image.png
image.png
//curl的-A选项指定 user agent。
//第一个请求, user_agent为“curl7.29.0”匹配了第一个条件,所以会403;
//第二个请求, user_agent为自定义的“123123”没有匹配任何条件,所以状态码为200。