11.25-11.27 配置防盗链,访问控制(Directory,FilesMatch)
4月17日任务
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 配置防盗链

防盗链,就是不让别人用你网站上的资源。
而这个资源,通常是图片,视频,歌曲,文档等。
referer的概念,通过A网站的一个页面a.com/a.html里面的链接去访问B网站的一个页面b.com/b.html,那么这个B网站的referer就是a.com/a.html。也就是说,一个referer就是一个网址。
通过限制referer来实现防盗链的功能
配置文件增加如下内容
<Directory /data/wwwroot/www.123.com>
SetEnvIfNoCase Referer "http://www.123.com" local_ref
SetEnvIfNoCase Referer "http://123.com" local_ref
SetEnvIfNoCase Referer "^$" local_ref
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
Order Allow,Deny
Allow from env=local_ref
</filesmatch>
</Directory>

Order Allow,Deny
解析,
限制动作的顺序 。白名单的先允许,其他的将会被Deny
Allow From env=local_ref
允许的源
检查并重新加载
apachectl -t, apachectl graceful
打开网页测试,测试白名单111.com/1.gif
其中1.gif是属于白名单的其中针对文件类型
截图
加了防盗链之后,会提示没有被允许访问。
如果我们直接在防盗链配置上面加入第三方链接的referer,我们也能直接访问。
例如,在阿铭论坛上访问111.com/1.gif,使其开通白名单即可。以下配置




原理就是,111.com/1.gif的referer是阿铭论坛(ask.apelearn.com),而阿铭论坛又被列入白名单当中。所以在阿铭论坛点开111.com/1.gif是完全不受访问的 。
^$表示空referer,就是指开头了就结尾了。
curl测试 curl-e后面接referer的网址
[root@AliKvn 111.com]# curl -e "http://www.qq.com/123.txt" -x127.0.0.1:80 111.com/1.gif -I
HTTP/1.1 403 Forbidden
Date: Tue, 17 Apr 2018 10:15:55 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.30
Content-Type: text/html; charset=iso-8859-1
状态代码是403,因为referer是http://www.qq.com/123.txt
[root@AliKvn 111.com]# curl -e "http://111.com/123.txt" -x127.0.0.1:80 111.com/1.gif -I
HTTP/1.1 200 OK
Date: Tue, 17 Apr 2018 10:16:58 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.30
Last-Modified: Tue, 14 Jul 2009 05:32:31 GMT
ETag: "91554-46ea3c3d3b9c0"
Accept-Ranges: bytes
Content-Length: 595284
Content-Type: image/gif
状态码是200,因为referer是http://111.com/123.txt,而111.com又是白名单之一,所以是通过的。
11.26 访问控制Directory
核心配置文件内容
<Directory /data/wwwroot/www.123.com/admin/>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>

/admin/ 表示后台
curl测试状态码为403则被限制访问了,
因为上面命令语句中,只有127.0.0.1是allow的,其他都是deny。所以当172.18.171.157去访问111.com/admin/index.php是会被限制访问。
而127.0.0.1:80则被允许。

关于Order,
Order deny,allow
Order后面先deny,所以Order执行的第一个语句是执行deny的语句。
Deny from all 先拒绝所有,无论是127.0.0.1也是如此。
Allow from 127.0.0.1 再允许正确来源IP访问127.0.0.1,这里的本地访问指服务器IP本地。
主要目的,为了限制外连、本地连接,只能让本地连接,这里本地连接的IP的本地是服务器IP(127.0.0.1 或者服务器IP段都行)。
11.27 访问控制FilesMatch
核心配置文件内容
<Directory /data/wwwroot/www.123.com>
<FilesMatch "admin.php(.*)">
Order deny,allow
Deny from all
Allow from 127.0.0.1
</FilesMatch>
</Directory>

用curl可以看到效果127.0.0.1的状态码404是通过访问了,只是找不到页面(因为页面本来就不存在)
而主机ip 172.18.171.157的状态码403连访问都通过试过,连接被受限了。
[root@AliKvn logs]# curl -x127.0.0.1:80 111.com/admin.php1111111111 -I
HTTP/1.1 404 Not Found
Date: Wed, 18 Apr 2018 08:59:48 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.30
Content-Type: text/html; charset=iso-8859-1
[root@AliKvn logs]# curl -x172.18.171.157:80 111.com/admin.php1111111111 -I
HTTP/1.1 403 Forbidden
Date: Wed, 18 Apr 2018 08:59:52 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.30
Content-Type: text/html; charset=iso-8859-1
转载于:https://blog.51cto.com/13578154/2104530
11.25-11.27 配置防盗链,访问控制(Directory,FilesMatch)的更多相关文章
- 配置防盗链 访问控制Directory 访问控制FilesMatch
- centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课
centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 ...
- 配置防盗链、访问控制Directory和FilesMatch
5月31日任务 课程内容: 11.25 配置防盗链11.26 访问控制Directory11.27 访问控制FilesMatch扩展几种限制ip的方法 http://ask.apelearn.com/ ...
- Linux centosVMware Apache 配置防盗链、访问控制Directory、访问控制FilesMatch
一.配置防盗链 通过限制referer来实现防盗链的功能 配置文件增加如下内容 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //改为如下 ...
- nginx解决服务器宕机、解决跨域问题、配置防盗链、防止DDOS流量攻击
解决服务器宕机 配置nginx.cfg配置文件,在映射拦截地址中加入代理地址响应方案 location / { proxy_connect_timeout 1; proxy_send_timeout ...
- Apache配置 8.配置防盗链
(1)介绍 防盗链,通俗讲,就是不让别人盗用你网站上的资源.这个资源,通常指的是图片.视频.歌曲.文档等. (2)配置 配置防盗链先编辑主机配置文件: #vim /usr/local/apache2. ...
- The server of Apache (四)——配置防盗链和隐藏版本信息
一.防盗链 防盗链就是防止别人的网站代码里面盗用我们服务器的图片.文件.视频等相关资源,比如我们的网页的图片有链接,别人把链接复制粘贴到他们的服务器页面里,图片不在他们自己的网站里,每次打开他们的网站 ...
- apache配置防盗链
1.确保apache已开启rewrite. 2.在.htaccess文件中添加如下: RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://X ...
- LAMP 2.3 Apache配置防盗链
如果你的站点是一个图片站,有很多非常漂亮的美女图片,那我相信,时间久了会有很多人来你网站借图片,有的人直接下载走了,还有的人直接取走图片的地址,比如你的网站域名是 www.123.com,图片地址为 ...
随机推荐
- Visual Studio Code 1.44 解决中文代码显示乱码问题(小白图文教程)
现今主流的计算机中文字符编码方案是:GBK和UTF-8. 不同编码方案使用不同的字符集,GBK字符集在中文字符长度和字符数量上存在绝对优势,但对国外字符并不支持.所以,完全面向国内的程序/网页使用的是 ...
- Android如何快速打出100个渠道apk
测试1分钟900多个包 关键思路就是读文件,如图: Python快速打包脚本: #!/usr/bin/env python import zipfile prefix = 'channel_' cha ...
- 【数据库】MySQL数据库(四)
一.对数据的操作(详细版) 1.添加数据 1> insert into 表名 (字段1,字段2...) values (值1,值2...); 2> insert into 表名 (字段1, ...
- SpringBoot系列(五)Mybatis整合完整详细版
SpringBoot系列(五)Mybatis整合 目录 mybatis简介 项目创建 entity dao service serviceImpl mapper controller 1. Mybat ...
- PHP程序员的能力水平层次(二)
PHPer的定义:PHPer是以PHP程序编写为主要工作,其他方面略有涉及的一种职业人士,大家所说的程序猿. 对PHPer的等级划分 PHP 爱好者 (半个PHPer) PHP 初学者 (PHP Be ...
- "多行文本"组件:<multi> —— 快应用组件库H-UI
 <import name="multi" src="../Common/ui/h-ui/text/c_text_multi"></impo ...
- 运输层--------运输层与网络层的关系、UDP、TCP
一.运输层与网络的区别: 网络层提供了主机之间的逻辑通信,而运输层为运行在不同主机上的进程之间提供了逻辑通信 二.实例证明: 考虑有两个家庭,一家位于美国东岸,一家位于美国西海岸,每家有12孩子.东海 ...
- CSS躬行记(6)——滤镜
滤镜(filter)可改造元素的视觉呈现,CSS内置的滤镜有10种,通过SVG文件还能自定义滤镜. 一.调色滤镜 调色滤镜可控制元素的模糊.颜色.亮度等变化,并且多个滤镜可组合在一起使用.这些滤镜大部 ...
- D3平移和缩放后的点击坐标(D3 click coordinates after pan and zoom)
我使用D3库来创建绘图应用程序. 我需要在用户单击的坐标上绘制对象(为了简单起见).问题是当用户使用平移&缩放和移动视口.然后对象是错误的位置的地方(我想问题是事件坐标是相对于svg元素而不是 ...
- Python语法详解
python语法解析 目录 python语法解析 一.顺序结构 二.分支结构 2.1 if 的基本语法 2.2 if 的基本应用 三.循环结构 3.1 while 语法 3.1.1 语法结束条件 3. ...