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 ignore_user_abort与register_shutdown_function 使用方法
Jun 14 PHP
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
Aug 22 PHP
php设置编码格式的方法
Mar 05 PHP
Laravel 5框架学习之用户认证
Apr 09 PHP
PHP读取汉字的点阵数据
Jun 22 PHP
smarty高级特性之过滤器的使用方法
Dec 25 PHP
必须收藏的php实用代码片段
Feb 02 PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
May 21 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
Jul 14 PHP
PHP7 新特性详细介绍
Sep 06 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
Feb 17 PHP
php探针不显示内存解决方法
Sep 17 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
用PHP制作静态网站的模板框架(三)
2006/10/09 PHP
JS异常处理try..catch语句的作用和实例
2014/05/05 PHP
学习php设计模式 php实现合成模式(composite)
2015/12/08 PHP
ThinkPHP实现图片上传操作的方法详解
2017/05/08 PHP
javascript 得到变量类型的函数
2010/05/19 Javascript
JQuery之拖拽插件实现代码
2011/04/14 Javascript
JQuery插件iScroll实现下拉刷新,滚动翻页特效
2014/06/22 Javascript
jQuery $.each遍历对象、数组用法实例
2015/04/16 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
2016/02/18 Javascript
JS事件添加和移出的兼容写法示例
2016/06/20 Javascript
javascript中的 object 和 function小结
2016/08/14 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
JavaScript门道之标准库
2018/05/26 Javascript
Js中使用正则表达式验证输入是否有特殊字符
2018/09/07 Javascript
javascript实现的字符串转换成数组操作示例
2019/06/13 Javascript
解决layui的form里的元素进行动态生成,验证失效的问题
2019/09/14 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
javascript实现前端成语点击验证
2020/06/24 Javascript
[42:25]EG vs Spirit Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
Python随机生成一个6位的验证码代码分享
2015/03/24 Python
Python之Scrapy爬虫框架安装及使用详解
2017/11/16 Python
python3.x上post发送json数据
2018/03/04 Python
Python八皇后问题解答过程详解
2019/07/29 Python
python绘制随机网络图形示例
2019/11/21 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
HTML5 video视频字幕的使用和制作方法
2018/05/03 HTML / CSS
澳大利亚优质葡萄酒专家:Vintage Cellars
2019/01/08 全球购物
VICHY薇姿俄罗斯官方网上商店:法国护肤品牌,火山温泉水
2019/11/22 全球购物
给女儿的表扬信
2014/01/18 职场文书
环保倡议书格式范文
2014/05/14 职场文书
婚前协议书标准版
2014/10/19 职场文书
计划生育责任书
2015/05/09 职场文书
MySQL导致索引失效的几种情况
2022/06/25 MySQL