码迷,mamicode.com
首页 > 其他好文 > 详细

防盗链

时间:2017-09-15 11:01:46      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:设计   字段   业务   access   指定   link   referer   engine   目标   

网站防盗链的解决方案

1、根据http referer实现防盗链
在http协议中,有一个表头字段叫referer,使用URL格式来表示从哪里来的链接到当前网页的资源。通过referer可以检测目标访问的来源网页,如果是资源文件,可以跟踪到显示它的网页地址,一旦检测出来来源不是本站进行阻止或返回指定的页面。apache,nginx,lighttpd三者都支持根据http referer实现防盗链。

2、根据cookie处理

3、通过加密变换访问路径实现防盗链
lighttpd有类似的插件mod_secdownload。

 

Apache防盗链

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://blog.etiantian.org/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://blog.etiantian.org$ [NC]
RewriteCond %{HTTP_REFERER} !^http://bbs.etiantian.org/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://bbs.etiantian.org$ [NC]
RewriteRule .*\.(gif|jpg|swf)$ http://www.etiantian.org/img/nolink.jpg [R,NC]

配置案例,在虚拟主机中的配置:

<VirtualHost *:80>
    ServerAdmin 491964349@qq.com
    DocumentRoot "/var/html/bbs"
    ServerName bbs.etiantian.org
    ErrorLog "logs/bbs-error_log"
    CustomLog "|/usr/local/sbin/cronolog /app/logs/access_bbs_%Y%m%d.log" combined
    
	RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^http://blog.etiantian.org/.*$ [NC]
    RewriteCond %{HTTP_REFERER} !^http://blog.etiantian.org$ [NC]
   # RewriteCond %{HTTP_REFERER} !^http://bbs.etiantian.org/.*$ [NC]
   # RewriteCond %{HTTP_REFERER} !^http://bbs.etiantian.org$ [NC]
    RewriteRule .*\.(gif|jpg|swf)$ http://www.etiantian.org/img/timg.jpg [R,NC]
	
</VirtualHost>

 

 

Nginx 防盗链

location ~* \.(gif|jpg|png|swf|flv)$ { 
  valid_referers none blocked *.etiantian.org ; 
  if ($invalid_referer) { 
    rewrite ^/ http://www.etiantian.org/nolink.jpg; 
    #return 403; 
  } 
} 

要根据公司的业务,是否有外链合作,进行设置域名的允许


在产品设计上解决盗链方案:
将计就计,,,,,为网站上传的图片增加水印等

防盗链

标签:设计   字段   业务   access   指定   link   referer   engine   目标   

原文地址:http://www.cnblogs.com/bill2014/p/7525141.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!