转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
网站的下载资源防盗链系统是如何做的?         ★★★

网站的下载资源防盗链系统是如何做的?

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1278 更新时间:2010/3/21 21:48:08

防盗链原理:
  http标准协议中有专门的字段记录referer

  一来可以追溯上一个入站地址是什么

  二来对于资源文件,可以跟踪到包含显示他的网页地址是什么。

  因此所有防盗链方法都是基于这个Referer字段

  网上比较多的2种

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

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

  Order Allow,Deny

  Allow from env=local_ref

  Allow from 127.0.0.1

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

  请大家注意,把第一句"^http://www.youdomain.com/"改为您的网站,比如我的网站是: http://www.mintao.net

  我应该这么写的

  "^http://www.mintao.net/"

  第二种是使用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://domain.com/.*$ [NC]

  RewriteCond %{HTTP_REFERER} !^http://domain.comt$ [NC]

  RewriteCond %{HTTP_REFERER} !^http://www.domain.com/.*$ [NC]

  RewriteCond %{HTTP_REFERER} !^http://www.domain.com$ [NC]

  RewriteRule .*.(jpg|jpeg|gif|png|bmp|rar|zip|exe)$ http://youdomain.com/err.html [R,NC]

  其中有色的地方都是要改为您的:

  红色:就是改为您提供下载页面的地址,也就是只有通过这个地址才可以下载您所提供的东东。

  蓝色:就是要保护文件的扩展名(以|分开),也就是说以这些为扩展名的文件只有通过红色的地址才可以访问。

  绿色:如果不是通过红色的地址访问蓝色这些为扩展名的文件时就回重定向到绿色地址上。

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

  接下就是怎么用 .htaccess 文件来实现防盗链了。

  首先要在空间上建两个目录(当然目录名随您),一个为 web 另一个为 down ,

  web 是用来放下载页面的(或下载程序),down 当然就是放您提供的东东的啦,

  把 .htaccess 文件的红色部分改一下,改为http://mydomain.com/web。蓝色部分

  改为您要保护文件的扩展名。绿色部分改为http://mydomain.com/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是否是本站地址。


[搜索优化]闵涛——如何让百度重新收录你的网站,网站被K怎么…  [搜索优化]百度蜘蛛爬行网站检测代码诠释
[建站心得]浅谈高质量的原创软文对网站的重要性  [网站运营]网站除了ICP证还要啥 各类网站许可证大全
[网站推广]分享几个颇有创意的网站推广方法  [建站心得]老站长谈个人如何才能够做一个成功的网站?
[网络安全]网站存在上传漏洞被挂马的解决办法(供参考)  [Web开发]web.config更改网站上传文件大小的限制
[Web开发]打开网站浏览页面出现乱码的解决方案  [Web开发]VS2005如何建立(新建)网站项目
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台