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

1,配置防盗链。

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

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

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

       
        SetEnvIfNoCase Referer "http://www.123.com" local_ref
        SetEnvIfNoCase Referer "http://123.com" local_ref
        SetEnvIfNoCase Referer "^$" local_ref
       
        Order Allow,Deny
        Allow from env=local_ref
       

       

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

    实验:

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

    配置防盗链 访问控制Directory 访问控制FilesMatch_第1张图片

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

配置防盗链 访问控制Directory 访问控制FilesMatch_第2张图片

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

 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,看到图片正常显示。

配置防盗链 访问控制Directory 访问控制FilesMatch_第3张图片

2,访问控制Directory。

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

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

           
                Order deny,allow
                Deny from all
                Allow from 127.0.0.1
       

    使用来指定要限时访问的目录,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。

   配置防盗链 访问控制Directory 访问控制FilesMatch_第4张图片

配置防盗链 访问控制Directory 访问控制FilesMatch_第5张图片

3,访问控制FilesMatch。

 编辑配置文件为如下:

          
               
                Order deny,allow
                Deny from all
                Allow from 127.0.0.1
               

       

重新加载配置文件。

    配置防盗链 访问控制Directory 访问控制FilesMatch_第6张图片

    配置防盗链 访问控制Directory 访问控制FilesMatch_第7张图片

你可能感兴趣的:(linux)