PHP防盗链代码实例


Posted in PHP onAugust 27, 2014

防盗链是目前非常常见的web程序设计技巧。本文就以一个实例展示了PHP防盗链的实现方法。分享给大家供大家参考之用。具体方法如下:

主要功能代码如下:

<?php
/*
使用方法:将上述代码保存为dao4.php,
比如测试用的validatecode.rar在站点http://www.XXXX.com里面,
则用以下代码表示下载连接.
文件名?site=1&file=文件 
例如以下URL:
http://www.XXXX.cn/dao4.php?site=1&file=validatecode.rar 
*/
$ADMIN[defaulturl] = "http://www.XXXX.com/404.htm"; //盗链返回的地址
$okaysites = array(
  "http://www.XXXX.com/",
  "http://XXXX.com"
); //白名单
$ADMIN[url_1] = "http://www.XXXX.com/download/"; //下载地点1
$ADMIN[url_2] = ""; //下载地点2,以此类推
$reffer = $HTTP_REFERER;
if ($reffer) {
  $yes = 0;
  while (list($domain, $subarray) = each($okaysites)) {
    if (ereg($subarray, "$reffer")) {
      $yes = 1;
    }
  }
  $theu = "url" . "_" . "$site";
  if ($ADMIN[$theu] AND $yes == 1) {
    header("Location: $ADMIN[$theu]/$file");
  } else {
    header("Location: $ADMIN[defaulturl]");
  }
} else {
  header("Location: $ADMIN[defaulturl]");
}
?>

希望本文所述对大家学习PHP程序设计有所帮助。

PHP 相关文章推荐
PHP读取目录下所有文件的代码
Jan 07 PHP
在Windows下编译适用于PHP 5.2.12及5.2.13的eAccelerator.dll(附下载)
May 04 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
Jun 28 PHP
PHP 获取MySQL数据库里所有表的实现代码
Jul 13 PHP
PHP中extract()函数的定义和用法
Aug 17 PHP
php 强制下载文件实现代码
Oct 28 PHP
php实现Session存储到Redis
Nov 11 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
Jan 08 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
PHP+MySQL使用mysql_num_rows实现模糊查询图书信息功能
May 31 PHP
php unlink()函数使用教程
Jul 12 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
Apr 23 PHP
如何让搜索引擎抓取AJAX内容解决方案
Aug 25 #PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
Aug 25 #PHP
简单分析ucenter 会员同步登录通信原理
Aug 25 #PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
Aug 25 #PHP
ThinkPHP查询返回简单字段数组的方法
Aug 25 #PHP
php防止伪造数据从地址栏URL提交的方法
Aug 24 #PHP
php批量删除数据库下指定前缀的表以prefix_为例
Aug 24 #PHP
You might like
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
2010/12/29 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
Laravel中unique和exists验证规则的优化详解
2018/01/28 PHP
PHP中的异常处理机制深入讲解
2020/11/10 PHP
jQuery 图像裁剪插件Jcrop的简单使用
2009/05/22 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
js微信分享API
2020/10/11 Javascript
基于js对象,操作属性、方法详解
2016/08/11 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
基于jQuery实现数字滚动效果
2017/01/16 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
node使用Mongoose类库实现简单的增删改查
2018/11/08 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
JavaScript 中的无穷数(Infinity)详解
2020/02/13 Javascript
Swiper实现导航栏滚动效果
2020/10/16 Javascript
python计算两个地址之间的距离方法
2018/06/09 Python
python提取包含关键字的整行数据方法
2018/12/11 Python
Python实现的各种常见分布算法示例
2018/12/13 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
2020/03/24 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
使用CSS实现阅读进度条
2017/02/27 HTML / CSS
手把手教你实现一个canvas智绘画板的方法
2019/03/04 HTML / CSS
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
在C语言中"指针和数组等价"到底是什么意思?
2014/03/24 面试题
Linux管理员面试经常问道的相关命令
2013/04/29 面试题
大学生毕业的自我鉴定
2013/11/13 职场文书
陈安之励志演讲稿
2014/08/21 职场文书
2014乡镇干部纪律作风整顿思想汇报
2014/09/13 职场文书
2016大学优秀学生干部事迹材料
2016/03/01 职场文书
分析并发编程之LongAdder原理
2021/06/29 Java/Android
Mysql查询时间区间日期列表,不会由于数据表数据影响
2022/04/19 MySQL