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

1,配置防盗链。

    防盗链就是让别人不能盗用你网站上的资源,通常指的是图片、视频、歌曲、文档等。

    referer概念:用A网站的一个页面a去访问B网站的一个页面b,那么B网站页面的referer就是页面a。也就是说referer是一个网址。

        编辑配置文件加入如下内容,vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

        <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>

    首先自定义允许访问链接的referer,其中^$为空referer,当直接再浏览器里输入图片地址去访问它时,它的referer就为空。然后又使用filesmatch来定义需要保护的文件类型,访问txt、doc、mp3、zip、rar、jpg、gif格式的文件,当访问这样类型的文件时就会被限制。

    实验:

    先注释SetEnvIfNoCase Referer "^$" local_ref这一行,这样我们就点击http://www.123.com/123.jpg就会提示Forbidden错误。

    

 在csdn博客中发一个帖子,把www.123.com/123.jpg做成超链接。


接着在配置文件中加入如下内容:

 SetEnvIfNoCase Referer "https://blog.csdn.net" local_ref

重新加载配置。

/usr/local/apache2.4/bin/apachectl -t

/usr/local/apache2.4/bin/apachectl graceful

在博客中点击超链接,跳转到http://www.123.com/123.jpg,看到图片正常显示。


2,访问控制Directory。

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

    限制IP,编辑配置文件vim /usr/local/apache2/conf/extra/httpd-vhosts.conf,改成如下内容:

            <Directory /data/wwwroot/www.123.com/admin>
                Order deny,allow
                Deny from all
                Allow from 127.0.0.1
        </Directory>

    使用<Directory>来指定要限时访问的目录,order定义控制顺序,哪个在前面就先匹配哪个规则。deny在前面就先匹配Deny from all,这样所有的来源IP都会被限制,然后匹配Allow from 127.0.0.1,这样又允许了127.0.0.1这个IP。这样只允许来源IP为127.0.0.1的访问。

    重新加载配置:/usr/local/apache2/bin/apachectl -t;/usr/local/apache2/bin/apachectl graceful

    验证过程:

# mkdir /data/wwwroot/www.123.com/admin/    //创建目录
# echo "admin" > /data/wwwroot/www.123.com/admin/index.html  //在目录下创建文件并写入内容
# > /usr/local/apache2/logs/www.123.com-access_20180602.log  //清空当天的访问日志

# curl -x127.0.0.1:80 www.123.com/admin/index.html -I   //自己访问自己
HTTP/1.1 200 OK
Date: Sat, 02 Jun 2018 15:40:32 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.32
Last-Modified: Sat, 02 Jun 2018 15:37:50 GMT
ETag: "6-56daa7ba9e668"
Accept-Ranges: bytes
Content-Length: 6
Cache-Control: max-age=0
Expires: Sat, 02 Jun 2018 15:40:32 GMT
Content-Type: text/html     

# curl -x192.168.177.130:80 www.123.com/admin/index.html -I   //本机IP访问
HTTP/1.1 403 Forbidden
Date: Sat, 02 Jun 2018 15:51:36 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.32
Content-Type: text/html; charset=iso-8859-1

查看日志。

# tail /usr/local/apache2/logs/www.123.com-access_20180602.log 
127.0.0.1 - - [02/Jun/2018:23:51:30 +0800] "HEAD HTTP://www.123.com/admin/index.html HTTP/1.1" 200 - "-" "curl/7.29.0"

192.168.177.130 - - [02/Jun/2018:23:51:36 +0800] "HEAD HTTP://www.123.com/admin/index.html HTTP/1.1" 403 - "-" "curl/7.29.0"

用浏览器分别访问http://www.123.com和http://www.123.com/admin/index.html,前者正常,后者Forbidden。

   


3,访问控制FilesMatch。

 编辑配置文件为如下:

           <Directory /data/wwwroot/www.123.com/admin>
                <FilesMatch admin.php(.*)>
                Order deny,allow
                Deny from all
                Allow from 127.0.0.1
                </FilesMatch>
        </Directory>

重新加载配置文件。

    

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值