您的位置:首页 > Web前端 > 其它 > 正文

网站图片防盗链的常见方法

更多 时间:2017-6-17 类别:Web前端 浏览量:648

网站图片防盗链的常见方法

网站图片防盗链的常见方法

一、防盗链原理

http标准协议中有专门的字段记录referer,利用referer可以追溯到请求时从哪个网站链接过来的,对于图片资源文件,可以跟踪到引用它的网页地址是什么,因此可以基于这个Referer字段对图片进行防盗链处理。

例如:

1、正常使用百度贴吧查看图片的请求头信息

2、盗链这个图片后的请求头信息

 

二、网站图片防盗链的常见方法

 

1、通过nginx 设置图片防盗链

(1)、在Nginx 的配置文件里加入类似如下代码:

  •  
  •    复制
  • 
    location ~.*\.(jpg|gif|png)$ {
         valid_referers none blocked *.mysite.com mysite.com;
         if ($invalid_referer) {
         #rewrite ^/ 防盗链错误页面URL;
         return 403;
          }
    }
    
    		
  • 说明

    [1]、location ~.*\.(jpg|gif|png)$  表示所有 以 jpg|gif|png 为后缀名的文件都进行防盗链处理。用 (“|”) 来分隔你想保护的文件的扩展名。


    [2]、valid_referers none blocked *.abc.com abc.com;   验证referer , 其中:

    none 表示直接访问的,不存在referer;  

    blocked为根据防火墙伪装的 referer。


    [3]、#rewrite ^/ 防盗链错误页面URL;  如果图片是放盗链,重定向到地址 防盗链错误页面URL,一般是图片地址,但是要注意,这个图片地址不只能在此防盗链规则里,否则也访问不到。

    [4]、return 403;表示403错误。

    [5]、除了使用location对文件访问进行限制,也可以对特定目录进行限制,下面的配置会禁止访问images目录下所有文件

  •  
  •    复制
  • 
    location /images/ {
         valid_referers none blocked mysite.com *.mysite.com;
         if ($invalid_referer) {
            return   403;
        }
    }
    
    		
  •  

    2、通过.htaccess文件设置图片防盗链

    (1)、在根目录下创建一个.htaccess,如果已经有了,直接把下面的代码复制添加到.htaccess最下端即可。

  •  
  •    复制
  • 
    #RewriteEngine on
      RewriteCond %{HTTP_REFERER} !^$ [NC]
      RewriteCond %{HTTP_REFERER} !允许访问的HTTP来源网址1 [NC]
      RewriteCond %{HTTP_REFERER} !允许访问的HTTP来源网址2 [NC]
    
      RewriteRule .*.(gif|jpg|png)$ 防盗链重定向网址[R,NC,L]
    
    		
  • (2)、说明

    [1]、RewriteCond %{HTTP_REFERER} !^$ [NC]

    允许空“HTTP_REFERER”的访问,即允许用户在浏览器地址栏中直接输入图片地址时图片文件的显示。一般而言,这是可选的,不过,建议这么设置,如果强迫必须具有“HTTP_REFERER”才能访问,可能会带来某些问题,比如说在用户通过代理服务器访问时。

    [2]、RewriteCond %{HTTP_REFERER} !允许访问的HTTP来源网址1 [NC]
     

    设置允许访问的HTTP来源,包括我们的站点自身、Google、Baidu等。这个可以添加多条


    [3]、RewriteRule .*.(gif|jpg|png)$ 防盗链重定向网址[R,NC,L]
     

    定义被盗链时替代的链接,可以是图片,也可以是404错误页,当然替换的页面文件体积越小越好。

     

    3、.NET程序中可以通过 URL Rewrite Module 组件设置图片防盗链

     

    4、通过程序代码控制

     

    标签:图片防盗链