网站地图 | 联系我们 | 咨询热线:0991-4811639
您现在的位置: 新疆二域设计网络公司 >> 网页设计学院 >> 色彩理念 >> 网页理念 >> 正文

图片防盗链的原理是什么

有的网站的图片无法外链,如163等。它的原理是什么,为何别的网站用URL调不出它的图片。防盗链原理: http标准协议中有专门的字段记录referer ,一来可以追溯上一个入站地址是什么,二来对于资源文件,可以跟踪到包含显示他的网页地址是什么。

因此所有防盗链方法都是基于这个Referer字段。一种是使用apache文件FileMatch限制,在httpd.conf中增加 ( 其实也可以将把下面的语句存成一个.htaccess文件),并放到你的网站的根目录(就是www/html目录),这样子别人就没有办法盗连你的东东了~~

SetEnvIfNoCase Referer "^http://yahoo.com/" local_ref=1

Order Allow,Deny
Allow from env=local_ref
Allow from 127.0.0.1


这种很方便禁止非允许访问URL引用各种资源文件。请大家注意,把第一句"^http://yahoo.com/"改为你的网站,
比如我的网站是: http://www.linji.cn
我应该这么写的
"^http://www.linji.cn/"

第二种是使用rewrite,需要增加apache的mode_rewrite,支持.htaccess文件目录权限限制,在虚拟主机根目录增加.htaccess文件,描述从定向,把非本地地址refer的图片文件都从定向到警告图片或者警告网页上。

首先要确认你的服务器或空间的服务器解译引擎为Apache2,还有支持.htaccess客户设置文件,如果你有自己的服务器就请先对./conf/httpd.conf 文件做以下修改,找到:#LoadModule rewrite_module odules/mod_rewrite.so
把前面的 # 给去丢 。找到等一个 AllowOverride None 改为 AllowOverride All 重启Apache2服务器。接下就是做一个 .htaccess 文件了,其 .htaccess 文件内容为 :

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://aaoo.net/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://aaoo.net$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.aaoo.net/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.aaoo.net$ [NC]
RewriteRule .*.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$ http://down.yoyo.com.ru/err.html [R,NC]

其中有色的地方都是要改为你的:
红色:就是改为你提供下载页面的地址,也就是只有通过这个地址才可以下载你所提供的东东。
蓝色:就是要保护文件的扩展名(以|分开),也就是说以这些为扩展名的文件只有通过红色的地址才可以访问。
绿色:如果不是通过红色的地址访问蓝色这些为扩展名的文件时就回重定向到绿色地址上。

这个方法有个好处是,不同的虚拟主机用不同的描述定义。

接下就是怎么用 .htaccess 文件来实现防盗链了。
首先要在空间上建两个目录(当然目录名随你),一个为 web 另一个为 down ,
web 是用来放下载页面的(或下载程序),down 当然就是放你提供的东东的啦,
把 .htaccess 文件的红色部分改一下,改为http://你的域名/web。蓝色部分
改为你要保护文件的扩展名。绿色部分改为http://你的域名/web。改后保存
.htaccess 文件把它上传到 down 目录。

还有第三种:

我在解决plog禁止盗链的时候,发现个问题,也算个好方法。
plog把所有资源都自己管理起来,用resserver.php来动态显示,这样统一的入口方便添加权限操作。
同时造成上面2种方法无法使用,因为不再是apache直接访问资源文件,而是php通过文件读取。

因此只能在代码中做手脚:在读取资源文件输出之前,加如下判断代码 :
$referer = $_SERVER['HTTP_REFERER'];
$selfurl = $_SERVER['HTTP_HOST'];
if(false == strpos($referer,$selfurl))
{
echo '非法盗链!';
exit(1);
}

这里有些偷懒,直接看引用地址中是否包含host地址,不过原理就是这样,判断referer是否是本站地址。

我们常常在下载的时候,也碰到盗链网站无法下载,报盗链的问题。要下载这类文件最简单的方法就是改referer

比方flashget中,网址下面的"引用"一栏中,直接填写下载地址就可以了。

图片防盗链应适可而止

最近这些站点好像集体抽风,纷纷用上了图片防盗链,结果遇到了图片就是一个傻乎乎的替代图片"你看的图片来自某某站"或者是"此图片仅限于...用户之间交流与沟通",遇到这样的心情大坏,有的时候我不依不饶的直接点开这个图片,可要是不刷新,还是看不到到底是什么内容。

如果是用户自己的图片文件,你凭什么说"图片仅限于...用户之间交流与沟通"? 图片防盗链这个功能,如果是小网站防止大网站盗图片用用还情有可原,对于那些直接给用户上传的图片打上水印的垃圾门户站,适可而止吧,别总让给读者设置阅读障碍,不就是少看一点你们的广告么? 干脆你别提供 RSS 不就成了? 一方面默认用户从其他网站复制图片过来,一方面又防止站内的图片被别人用,这什么事儿啊?

对于我个人来说,你不让我直接从 Blog 里看到你的图片,我干脆就不看你站点上的内容--不订阅你站点的内容不就成了么?

作者:admin | 文章来源:新疆二域设计 | 更新时间:2007/10/16 20:40:33

  • 上一篇文章:

  • 下一篇文章:
  • 相关文章:
    没有相关文章

    色彩理念
    网页制作
    美工图形
    网络编程
    数 据 库
    网站运营
    ::最近更新::
    ·兼容IE6 IE7 Firefox的浏览…
    ·框架页尽量在网页设计制作…
    ·从网站联盟到阿里妈妈--中…
    ·2007年度最不受站长欢迎的…
    ·一个源码下载站站长的网站…
    ·网站设计优劣评估的步骤和…
    ·韩国网站设计风格
    ·关于图片防盗链
    ·了解设计需求是视觉设计的…
    ·服务器托管知识总结
    ·网站设计公司创业经验谈
    ·编码大全--网页中的语言文…
    ·品牌的力量---谈网站品牌建…
    ·编码utf-8乱码问题集锦
    ·网站建设和网页制作中的中…
    ::推荐阅读::
    ·网络公司错了 设计师也错了…
    ·网页设计制作中的形式美的…
    ·合理做好网站导航结构---网…
    ·网站建设步骤之网页设计制…
    ·网页制作开发中合理制定目…
    ·网站建设和网站设计的20个…
    ·网站建设项目流程概述
    ·学习网站建设技术CSS布局心…

    关于我们 | 网站建设 | 服务帮助 | 联系我们 | 网页设计学院 | 实用工具 | 友情链接 | 新疆专题
    版权所有 © 2007 新疆二域设计网络公司 www.xjcncn.com All Rights Reserved
    网站建设总机:0991-4811639、6587518 传真:0991-4842803 ;咨询热线:13999201770. E-mail:xjcncn@gmail.com
    MSN :xjcncn@hotmail.com ; QQ:359312 ;地址:新疆乌鲁木齐市北京路华联大厦A座5楼 邮编:830000