• php 防盗链


    防盗链的技术已经很普遍了,有些网站不喜欢自己的图片被别的网站直接复制使用,便使用了防盗链的技术,这样别人在直接复制使用网站图片时,图片便会按照程序的设定不显示或显示防盗链等字样。

    使用了防盗链技术,不仅可以防止自己的图片被盗用,也可以节省自己站点下载图片的流量,觉得还是蛮不错的说,那么在PHP环境下应该如何防止盗链呢?在PHP环境下我们知道通常都是使用Apache服务器,那么主要看下Apache防盗链的方法吧,其实IIS也是同一个原理。

    Apache防盗链:

    大多数的虚拟主机都是Apache的,因此最方便的防盗链设置莫过于利用.htaccess文件了。网上搜索下方法很多,于是我总结了下,绝对好用的方法。把下面的代码添加到.htaccess文件里,修改下即可。

    RewriteEngine on
    RewriteCond %{HTTP_REFERER} !^$ [NC]
    RewriteCond %{HTTP_REFERER} !60ie.net [NC]
    RewriteCond %{HTTP_REFERER} !youdao.com [NC]
    RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC]
    RewriteCond %{HTTP_REFERER} !twitter.com [NC]
    RewriteCond %{HTTP_REFERER} !facebook.com [NC]
    RewriteCond %{HTTP_REFERER} !xianguo.com [NC]
    RewriteCond %{HTTP_REFERER} !google.cn [NC]
    RewriteCond %{HTTP_REFERER} !google.com [NC]
    RewriteCond %{HTTP_REFERER} !google.com.tw [NC]
    RewriteCond %{HTTP_REFERER} !google.com.sg [NC]
    RewriteCond %{HTTP_REFERER} !google.com.hk [NC]
    RewriteCond %{HTTP_REFERER} !bloglines.com [NC]
    RewriteCond %{HTTP_REFERER} !soso.com [NC]
    RewriteCond %{HTTP_REFERER} !mail.qq.com [NC]
    RewriteCond %{HTTP_REFERER} !cn.bing.com [NC]
    RewriteCond %{HTTP_REFERER} !image.baidu.com [NC]
    RewriteCond %{HTTP_REFERER} !feedburner.com [NC]
    RewriteCond %{HTTP_REFERER} !feedsky.com [NC]
    RewriteRule .(png|jpg|gif)$ [R,NC,L]

    代码解释:

    先看最后一行,我对网站上的png、jpg、gif文件做了防盗链保护,一旦我网站里的图片在上述白名单之外的网站里出现,全部显示最后一行代码中的图片。

    Nginx防盗链:

    Nginx不支持.htaccess,设置起来稍微麻烦了点。首先要用文本编辑器打开/usr/local/nginx/conf/nginx.conf这个文件(如果你使用的是vhost,则到vhost里找相应的conf文件
    ),将如下代码匹配在server{ }段里面即可,注意我说的不是拷贝,而是匹配。
    location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
    {
    expires 30d;
    valid_referers none blocked *.ilucong.com *.youdao.com *.zhuaxia.com *.xianguo.com *.google.cn *.google.com *.google.com.tw *.google.com.sg *.google.com.hk
    *.bloglines.com image.soso.com cn.bing.com image.baidu.com *.feedburner.com *.feedsky.com;
    if ($invalid_referer) {
    rewrite ^/ ;
    #return 404;
    }
    }
    注意:尽量不要使用windows自带的记事本编辑,可能会出现乱行;编辑完之后,重启Ngnix服务方可生效

    转载 https://blog.csdn.net/luyaran/article/details/52573006

  • 相关阅读:
    python 高级之面向对象初级
    算法之算数表达式后序表示
    python高级之函数
    算法之最短路径
    算法之各种排序
    算法之使用递归求解迷宫问题
    python基础之文件读写
    python基础之编码问题
    python基础之dict、set及字符
    python基础之循环结构以及列表
  • 原文地址:https://www.cnblogs.com/wen-zi/p/9806242.html
Copyright © 2020-2023  润新知