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 删除无限级目录与文件代码共享
Nov 22 PHP
了解Joomla 这款来自国外的php网站管理系统
Mar 11 PHP
PHP开发需要注意的安全问题
Sep 01 PHP
PHP 中检查或过滤IP地址的实现代码
Nov 27 PHP
PHP Directory 函数的详解
Mar 07 PHP
使用PHP备份MySQL和网站发送到邮箱实例代码
Nov 28 PHP
php数组中包含中文的排序方法
Jun 03 PHP
PHP实现伪静态方法汇总
Jan 13 PHP
laravel5.2实现区分前后台用户登录的方法
Jan 11 PHP
php基于环形链表解决约瑟夫环问题示例
Nov 07 PHP
PHP中in_array的隐式转换的解决方法
Mar 06 PHP
Laravel5.5 实现后台管理登录的方法(自定义用户表登录)
Sep 30 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
是否存在第一台收音机的说法
2021/03/01 无线电
PHP无限分类(树形类)
2013/09/28 PHP
ThinkPHP中ajax使用实例教程
2014/08/22 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
2017/05/04 PHP
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
JS获得选取checkbox整行数据的方法
2015/01/28 Javascript
JavaScript中实现单体模式分享
2015/01/29 Javascript
jquery插件corner实现圆角边框的方法
2015/03/09 Javascript
javascript跨域原因以及解决方案分享
2015/04/08 Javascript
Vue.js Ajax动态参数与列表显示实现方法
2016/10/20 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
vue router带参数页面刷新或回退参数消失的解决方法
2019/02/27 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
vue路由--网站导航功能详解
2019/03/29 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
2019/05/13 jQuery
Ant Design Vue 添加区分中英文的长度校验功能
2020/01/21 Javascript
javaScript实现一个队列的方法
2020/07/14 Javascript
Python每天必学之bytes字节
2016/01/28 Python
Python 3中的yield from语法详解
2017/01/18 Python
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
深入学习python多线程与GIL
2019/08/26 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
python tornado使用流生成图片的例子
2019/11/18 Python
解决Tensorflow占用GPU显存问题
2020/02/03 Python
python3中sys.argv的实例用法
2020/04/24 Python
Python获取指定网段正在使用的IP
2020/12/14 Python
python中Array和DataFrame相互转换的实例讲解
2021/02/03 Python
校庆接待方案
2014/03/18 职场文书
党小组意见范文
2015/06/08 职场文书
青春雷锋观后感
2015/06/10 职场文书
几款流行的HTML5 UI框架比较(小结)
2021/04/08 HTML / CSS
frg-100简单操作(设置)说明
2022/04/05 无线电
python+pytest接口自动化之token关联登录的实现
2022/04/06 Python
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL