配置防盗链、访问控制Directory、FilesMatch

配置防盗链

首先来了解一下什么是盗链,全称是盗取链接,假如我们的网站有很多好看的图片,别人可以查看我们网站图片的链接,然后应用在他的网站上,这样的话,去访问他的网站,实际上消耗的是我们的流量(因为实际链接在我们这里),这样我们就不得不去配置防盗链,使得别人不能复制我们图片的链接。

防盗链的实现原理就不得不从HTTP协议说起,在HTTP协议中,有一个表头字段叫referer,采用URL的格式来表示从哪儿链接到当前的网页或文件。换句话说,通过referer,网站可以检测目标网页访问的来源网页,如果是资源文件,则可以跟踪到显示它的网页地址。有了referer跟踪来源就好办了,这时就可以通过技术手段来进行处理,一旦检测到来源不是本站即进行阻止或者返回指定的页面。
如果想对自己的网站进行防盗链保护,则需要针对不同的情况进行区别对待。如果网站服务器用的是apache,那么使用apache自带的Url Rewrite功能可以很轻松地防止各种盗链,其原理是检查refer,如果refer的信息来自其他网站则重定向到指定图片或网页上。

编辑虚拟主机配置文件
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

在配置文件中添加如下内容

<Directory /data/wwwroot/mm.com>
        SetEnvIfNoCase Referer "http://kjj.com"; local_ref
        SetEnvIfNoCase Referer "http://hnlbdz.com"; local_ref
        SetEnvIfNoCase Referer "^$" local_ref                            #表示空的Refer
        <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
            Order Allow,Deny
            Allow from env=local_ref
        </filesmatch>
 </Directory>

Directory表示指定哪个目录,我们设置防盗链肯定是针对本站点,所以直接写站点。
SetEnv开头的是referer的白名单
filesmatch开头的指的后面这些格式的文件不设置白名单,(就是说针对这些文件做防盗链)
order定义访问控制的,order定义顺序,是先允许还是先拒绝。
allow一行的意思是把上面末尾带有local_ref的白名单referer做一个允许。其他的使用上一行的order给deny掉

然后我们保存检查错误,然后重启。
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful

我们来做一个测试,测试一下kjj.com/ai.png浏览器看看能不能打开,或者把它以超链接的形式发到论坛,然后点开

出现如下情况就是空referer,就是防盗链起了作用:


访问控制Directory

访问控制Directory作用:限制白名单ip,只有允许的ip才能访问。相当于再再加一层防护。因为公网ip是固定的,所以帮你可以把公司的ip放进去,这样就只有公司的网络才能访问到。否则全部拒绝或限制。

编辑虚拟主机配置文件
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

在配置文件里添加如下段,目的是对yy.com下的yang目录进行访问控制(我们把如上选中代码复制到配置文件里去,然后做一些改动,(因为我们刚刚设置防盗链的时候用到了Directory,所以我们要把它放在那个Directory的上面))

<Directory /data/wwwroot/yy.com/yang/>
        Order deny,allow
        Deny from all
        Allow from 192.168.71.131
     </Directory>

Order 用来定义顺序 Order deny,allow 表示先deny 再allow
这段话表是拒绝所有的访问,仅通过192.168.71.131

然后我们保存检查错误,然后重启。
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful

使用curl进行测试是否成功
curl -x192.168.71.131:80 mm.com/yang/index.php -I

使用192.168.71.131可以正常访问,

curl -x192.168.71.132:80 111.com/yang/index.php -I

使用192.168.71.13无法访问


访问控制FilesMatch

上面访问控制的是以目录的形式,当然也是可以匹配一个文件名,或者说链接,有时候我们访问的链接里可能不是yang/,而是yang.php后面可能还跟了其他参数,那么我们就可以用forbidden去匹配它。

对mm.com下的yang.php开头页面进行访问控制,同样在虚拟主机配置文件上添加如下段:

<Directory /data/wwwroot/mm.com>
         <FilesMatch  "yang.php(.*)">
           Order deny,allow
           Deny from all
           Allow from 192.168.71.131
         </FilesMatch>
</Directory>

然后我们保存检查错误,然后重启。(因为有特殊符号所以要加单引号)
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful

使用curl进行测试是否成功
curl -x192.168.71.132:80 mm.com/yang.php?=1=2 -I

显示403 Forbidden

然后我们试试131的ip 虽然是这里是404,因为这个网址是不存在的,如果存在就能访问了。
curl -x192.168.71.131:80 ‘http:// mm.com/yang.php?alsjdflksajdflk‘ -I

原文地址:http://blog.51cto.com/13658403/2122553

时间: 2024-08-27 15:42:46

配置防盗链、访问控制Directory、FilesMatch的相关文章

配置防盗链 访问控制Directory 访问控制FilesMatch

原文地址:https://www.cnblogs.com/xiaobo-Linux/p/8541412.html

7.配置防盗链,访问控制

[toc] 11.25 配置防盗链 1.防盗链和referer概念 防盗链,通俗讲就是不让别人盗用你网站上的资源,这个资源指的是图片.视频.歌曲.文档等,在这之前需要理解一下referer的概念,如果你通过A网站的一个页面http://a.com/a.html里面的链接去访问B网站的一个页面http://b.com/b.html,那么这个B网站页面的referer就是http://a.com/a.html.也就是说,一个referer就是一个网址. 2.编辑虚拟主机配置文件httpd-vhost

配置防盗链、访问控制Directory针对目录、访问控制FilesMatch针对链接

配置防盗链 访问控制Directory针对目录 访问控制针对目录FilesMatch针对连接 原文地址:http://blog.51cto.com/13515599/2083516

配置防盗链、访问控制Directory、访问控制FilesMatch

配置防盗链 我的网站遇到最多的是两类盗链,一是图片盗链,二是文件盗链.曾经有一个访问量极大的网站盗链我网站的图片,一天竟然消耗了数G的流量.同时,我站放的不少几十兆的大型软件也常遭到文件盗链,大量消耗我站资源. 1.新增内容 [[email protected] local]# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <VirtualHost *:80> DocumentRoot "/data/wwwroot/111.

2018-3-6 10周5次课 配置防盗链、访问控制Directory、FilesMatch

11.25 配置防盗链 ·通过限制referer来实现防盗链的功能 带宽会异常升高,有可能是被倒链 配置如下内容: Order Allow,Deny ##顺序,先把白名单允许,把其他deny掉 Allow from env=local_ref (注意:"Allow,Deny"中间只有一个逗号,也只能有一个逗号,有空格都会出错:单词的大小写不限.上面设定的含义是先设定"先检查允许设定,没有允许的全部禁止",而第二句允许变量 local_ref 的 referer. &

配置防盗链,访问控制Directory,FilesMatch

配置防盗链 1.修改虚拟主机配置文件: [[email protected] ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <Directory /data/wwwroot/111.com> SetEnvIfNoCase Referer "http://111.com" local_ref SetEnvIfNoCase Referer "http://aaa.com" local_re

LAMP(6)静态元素过期时间、配置防盗链、访问控制Directory、访问控制FilesMatch

                              静态元素过期时间 静态元素:(图片.js.css) 平时我们在浏览器访问网站的时候,如果里面有这些静态元素,浏览器会帮我们把它们缓存下来,再次访问的时候访问的速度就会快. 缓存下来的静态元素到底缓存多久?这个是可以在服务器配置文件中定义的.(定义静态元素过期时间) 304 状态码表示该文件已经缓存到用户电脑. 定义静态元素的失效日期: 步骤:(针对111.com这台虚拟主机操作) 1.编辑配置文件,添加配置内容; 增加配置 <IfMod

配置防盗链、访问控制– Directory及访问控制 – FilesMatch

一.配置防盗链 配置文件增加如下内容<Directory /data/wwwroot/11.com>SetEnvIfNoCase Referer "http://www.11.com" local_refSetEnvIfNoCase Referer "http://11.com" local_refSetEnvIfNoCase Referer "^$" local_ref<filesmatch ".(txt|doc|m

apache配置防盗链、访问控制directory、访问控制FilesMatch

一:配置防盗链 打开虚拟主机配置文件#vim /usr/local/apache2/conf/extra/httpd-vhosts.conf添加以下内容SetEnvIfNoCase Referer "^http://.*\.abc\.com" local_ref SetEnvIfNoCase Referer ".*.aminglinux.com" local_ref SetEnvIfNoCase Referer "^$" local_ref #没