网站如何防盗链 先要知道其原理

  http标准协议中有专门的字段记录referer。一来可以追溯上一个入站地址是什么。二来对于资源文件,可以跟踪到包含显示他的网页地址是什么。因此所有防盗链方法都是基于这个Referer字段。网上比较多的2种。

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

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

  Order Allow,Deny

  Allow from env=local_ref

  Allow from 127.0.0.1

  这种很方便禁止非允许访问URL引用各种资源文件。

  请大家注意,把第一句"^http://www.zw361.com /"改为你的网站,比如我的网站是: http://www.abc.cn。

  我应该这么写的:

  "^http://www.abc.cn/"

  第二种是使用rewrite,需要增加apache的mode_rewrite,支持.htaccess文件目录权限限制。

  在虚拟主机根目录增加.htaccess文件,描述从定向,把非本地地址refer的图片文件都从定向到警告图片或者警告网页上。首先要确认你的服务器或空间的服务器解译引擎为Apache2,还有支持.htaccess客户设置文件,如果你有自己的服务器就请先对./conf/httpd.conf 文件做以下修改

  找到:#LoadModule rewrite_module modules/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中,网址下面的"引用"一栏中,直接填写下载地址就可以了。

时间: 2024-12-11 13:27:46

网站如何防盗链 先要知道其原理的相关文章

如何实现网站的防盗链?

背景 A是网站站长,在A的网站的网页里有一些图片和音频视频的链接,这些静态资源都保留在阿里云对象存储OSS上.B是另一个网站的站长,B在未经A允许的情况下,偷偷使用A的网站的图片资源,放置在自己网站的网页中,通过这种方法盗取空间和流量. 在这样的情况下,第三方网站用户看到的是B的网站,网站用户不知道也不关心网站里的图片是来自于哪里. 由于OSS是按照使用量来收费的,这样用户A在没有获取任何收益的情况下,反而承担了资源使用费用.A站应该怎么办呢? 本文就是介绍类似A这样的用户将资源存放在OSS上后

discuz论坛利用Rewrite组件实现防盗链

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;    图片防盗链(也包括其他类型的文件如音频.视频等)机制的目标在于保护自己的服务器资源特别是网络带宽不被非法滥用,合理的防盗链机制能够让网站有效地远离不法网站的侵扰,让网站资源最大限度地为自己的访问用户服务,而不是不知不觉地默默为其他网站作贡献.同时,必须注意的是,任何防盗链机制都不是百分之百"可靠"的,事实上,大多数网站的防盗链设置都是在保护

asp.net中利用ashx实现图片防盗链的原理分析_实用技巧

 直接分析盗链原理:看下面用httpwatch截获的http发送的数据 GET /Img.ashx?img=svn_work.gif HTTP/1.1 Accept: */* Referer: http://www.jb51.net/ Accept-Language: zh-cn UA-CPU: x86 Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NE

.htaccess配置文件实现网站文件图片防盗链

使用rewrite,开启apache的mode_rewrite模块,让服务器支持.htaccess文件目录权限设置,在网站根目录增加.htaccess文件,判断referer是否是本站地址,把非本地地址refer的文件都从定向到新的网页或提示网页上.使用.htaccess文件可以很方便的进行设置防盗链! 根据下面的设置基本可以做到简单的防止文件被盗链情况的发生,而且可以尽最大可能的减少服务器流量的消耗! 以下是.htaccess文件的内容:  代码如下 复制代码 <IfModule mod_re

asp防盗链技术的使用

我们在管理网站文件时,可以把扩展名一样的文件放在同一个目录下­,起一个比较特别名字,例如放pdf文件目录为the_pdf_­file_s,把下面代码另存为down.asp,他的网上路径­为http://www.xx.com/down.asp 我们在管理网站文件时,可以把扩展名一样的文件放在同一个目录下­,起一个比较特别名字,例如放pdf文件目录为the_pdf_­file_s,把下面代码另存为down.asp,他的网上路径­为http://www.xx.com/down.asp,我们就可以用ht

asp防盗链源码

防盗链  如果我们知道一个静态文件的实际路径如:http://www.xx.com/download/51windows.pdf,如果服务器没有作特别的限制设置,我们就可以毫不费力的把它下载下来!当网站提供51Windows.pdf下载时,怎么样才能让下载者无法得到他的实际路径呢!本文就来介绍如何使用ASP来隐藏文件的实际下载路径.       我们在管理网站文件时,可以把扩展名一样的文件放在同一个目录下,起一个比较特别名字,例如放pdf文件目录为the_pdf_file_s,把下面代码另存为d

推荐一个免费的防盗链软件给大家用哈(无限制完全功能版)

[local]思达防盗链专用下载服务器(无限制免费版).rar   [/local] [升级说明]   特别说明:注册用户为了保留注册信息,请将原来的Config文件夹拷贝到新程序目录覆盖Config文件夹                1.2007-5-25 升级1.1版        a) 修改了内核处理,进一步提高服务器性能        b) 修改了原来asp的md5加密不能通过验证的问题        c) 添加了限速功能,可设置每个连接限制下载速度        [功能] 运行平台:

如何防盗链?如何伪静态?(win2003+iis+ISAPI

iis|防盗链|伪静态 前提你要自己有服务器, 然后下载:http://www.helicontech.com/download.asp 接着安装,随便装哪都行. 然后,打开Internet 信息服务,右键,web站点属性,点ISAPI筛选器选项卡.添加筛选器,名称填个rewrite,路径自己指定ISAPI_Rewrite.dll(在安装的根目录下),然后确定. 设置扩展: 右击我的电脑--管理--服务与应用程序--Internet信息服务(IIS)管理--Web服务扩展--添加一个新的Web服

用Asp隐藏文件路径实现防盗链

防盗链|防盗链 如果我们知道一个静态文件的实际路径如:http://www.xx.com/download/51windows.pdf,如果服务器没有作特别的限制设置,我们就可以毫不费力的把它下载下来!当网站提供51windows.pdf下载时,怎么样才能让下载者无法得到他的实际路径呢!本文就来介绍如何使用Asp来隐藏文件的实际下载路径. 我们在管理网站文件时,可以把扩展名一样的文件放在同一个目录下,起一个比较特别名字,例如放pdf文件目录为the_pdf_file_s,把下面代码另存为down