43.配置防盗链 访问控制Directory及FilesMatch

11.25 配置防盗链

11.26 访问控制Directory(针对一个目录做限制)

11.27 访问控制FilesMatch(针对一个文件或链接做限制)

扩展

几种限制ip的方法 http://ask.apelearn.com/question/6519

apache 自定义header http://ask.apelearn.com/question/830

apache的keepalive和keepalivetimeout http://ask.apelearn.com/question/556

 

 

 

11.25 配置防盗链

 

设置防盗链,不是我认识的就不允许你访问。比如,A的图片上传到B,在B里面去引用,造成B的带宽升高,这是不允许的。只能在A域名里去访问,这样图片就能控制在我们自己的服务器上,第三方的站点没有办法去引用,这个就叫防盗链

 

通过限制referer来实现防盗链的功能

Apache的虚拟配置文件,配置文件增加如下内容

<Directory /data/wwwroot/111.com> 用到了Directory。定义哪个目录,也就是本站点

SetEnvIfNoCase Referer "http://111.com" local_ref 定义referer的白名单

SetEnvIfNoCase Referer "http://aaa.com" local_ref

SetEnvIfNoCase Referer "^$" local_ref 空的referer也设为白名单。

注释掉的话,直接访问网址不显示(Forbidden),也就是没有索引页不能直接访问

<FilesMatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png)"> FM不严格区分大小写,都可以。定义规则,针对这样的去做白名单,也就是做防盗链

Order Allow,Deny 顺序,先允许还是先拒绝

Allow from env=local_ref 把上面的两个把名单做一个允许,其他的deny掉

</FilesMatch>

</Directory>

-t gaceful

curl -e "http://www.aminglinux.com/123.html" 自定义referer

 

 

 

实例:

[root@axinlinux-01 ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

<Directory /data/wwwroot/111.com>

SetEnvIfNoCase Referer "http://111.com" local_ref

SetEnvIfNoCase Referer "http://aaa.com" local_ref

SetEnvIfNoCase Referer "^$" local_ref

<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png)">

Order Allow,Deny

Allow from env=local_ref

</filesmatch>

</Directory>

[root@axinlinux-01 ~]# /usr/local/apache2/bin/apachectl -t

Syntax OK

[root@axinlinux-01 ~]# /usr/local/apache2/bin/apachectl graceful

httpd not running, trying to start

浏览器上测试 111.com/abc.jpg 为Forbidden(即空referer) 也就是我们需要把链接的那个站址放到referer的白名单里去或设置空referer可访问

 

 

----------------------------------------------------------------------------------------------------------------------------------------------------

 

 

11.26 访问控制Directory(针对一个目录做限制):

 

 

只允许这个使用这个ip的用户才能访问(为一个目录)

 

核心配置文件内容

<Directory /data/wwwroot/111.com/admin/>

Order deny,allow Order指定顺序,是先deny还是allow,和下面两行是对应的

Deny from all

Allow from 127.0.0.1

</Directory>

curl测试状态码为403则被限制访问了

-t grace

也就是做了这个操作,只有在这个ip127.0.0.1的ip上访问,才可以200

 

 

 

实例:

[root@axinlinux-01 admin]# vi 123.php

<Directory /data/wwwroot/111.com/admin/>

Order deny,allow

Deny from all

Allow from 127.0.0.1

</Directory>

[root@axinlinux-01 admin]# /usr/local/apache2/bin/apachectl -t

Syntax OK

[root@axinlinux-01 admin]# /usr/local/apache2/bin/apachectl graceful

[root@axinlinux-01 admin]# curl -x192.168.159.128:80 111.com/admin/123.php -I

HTTP/1.1 403 Forbidden

[root@axinlinux-01 admin]# curl -x127.0.0.1:80 111.com/admin/123.php -I

HTTP/1.1 200 OK

 

 

 

----------------------------------------------------------------------------------------------------------------------------------------------------

 

 

11.27 访问控制FilesMatch(针对一个文件或链接做限制):

 

核心配置文件内容

<Directory /data/wwwroot/111.com>

<FilesMatch "admin.php(.*)"> 以上面的directory的基础上。在下面加一行。意思为admin.php......(什么什么的)

Order deny,allow

Deny from all

Allow from 127.0.0.1

</FilesMatch> 接上面的FilesMatch,都是成对出现的

</Directory>

 

实例:

[root@axinlinux-01 admin]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

<FilesMatch "admin.php(.*)">

Order deny,allow

Deny from all

Allow from 127.0.0.1

</FilesMatch>

[root@axinlinux-01 admin]# /usr/local/apache2/bin/apachectl -t

Syntax OK

[root@axinlinux-01 admin]# /usr/local/apache2/bin/apachectl graceful

[root@axinlinux-01 admin]# curl -x127.0.0.1:80 'http://111.com/admin/admin.phpaew?' -I 有特殊符号要用单引号

HTTP/1.1 404 Not Found 404代表页面不存在,其实是已经访问了,只是我们没有创建这个admin.phpaew?

Date: Mon, 06 Aug 2018 15:26:41 GMT

Server: Apache/2.4.34 (Unix) PHP/5.6.32

Content-Type: text/html; charset=iso-8859-1

 

[root@axinlinux-01 admin]# curl -x192.168.159.128:80 'http://111.com/admin/admin.phpaew?' -I

HTTP/1.1 403 Forbidden

Date: Mon, 06 Aug 2018 15:26:57 GMT

Server: Apache/2.4.34 (Unix) PHP/5.6.32

Content-Type: text/html; charset=iso-8859-1

转载于:https://my.oschina.net/u/3866149/blog/1923522

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值