zoukankan      html  css  js  c++  java
  • 防盗链

    网站防盗链的解决方案

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

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


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

  • 相关阅读:
    DB设计原则
    英文地址[转]
    ICollection
    雅虎优化14条
    vue过滤器
    php中echo(),print(),print_r()之间的区别
    jQ中对attr()方法的理解
    浅析call和apply的不同
    浅析call和apply
    PHP是弱类型语言,自动转换,强制转换
  • 原文地址:https://www.cnblogs.com/bill2014/p/7525141.html
Copyright © 2011-2022 走看看