php防盗链的常用方法小结


Posted in PHP onJuly 02, 2010

1.简单防盗链

$ADMIN[defaulturl] = "http://3water.com/404.htm";//盗链返回的地址 
$okaysites = array("http://3water.com/","https://3water.com"); //白名单 
$ADMIN[url_1] = "http://3water.com/temp/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]"); 
} 
?>

使用方法:将上述代码保存为dao4.php,
比如我测试用的validatecode.rar在我的站点http://3water.com/temp/download里面,
则用以下代码表示下载连接.

CODE: [Copy to clipboard]
文件名?site=1&file=文件

2.服务器防盗链
用到iis防盗链软件,可以搜下,网上有很多。s.3water.com里面有的下

3.软件下载的防盗链方法

//放置下载软件的根目录相对于当前脚本目录的相对目录 
$fileRelPath = "../../software"; 
//例外允许连接的网址,注意:自身域名不需要填入,设定为肯定可以下载, 
// 空字符串("")表示直接输入网址下载的情况 
$excludeReferArr = array("www.w3water.com", "w3water.com"); chdir($fileRelPath); 
$fileRootPath = getcwd() ."/"; 
$filePath=$HTTP_GET_VARS["file"]; 
$url=parse_url($_SERVER["HTTP_REFERER"]); 
if($url[host]!=$_SERVER["HTTP_HOST"] && !in_array($referHost, $excludeReferArr)){ 
?>
PHP 相关文章推荐
奇怪的PHP引用效率问题分析
Mar 23 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
Jun 19 PHP
php基于mcrypt的加密解密实例
Oct 27 PHP
利用PHP函数计算中英文字符串长度的方法
Nov 11 PHP
php中判断数组相等的方法以及数组运算符介绍
Mar 30 PHP
PHP中文竖排转换实现方法
Oct 23 PHP
Smarty模板引擎缓存机制详解
May 23 PHP
PHP定时任务获取微信access_token的方法
Oct 10 PHP
PHP自定义多进制的方法
Nov 03 PHP
详解PHP处理密码的几种方式
Nov 30 PHP
PHPMailer发送邮件
Dec 28 PHP
Laravel学习基础之migrate的使用教程
Oct 11 PHP
破解图片防盗链的代码(asp/php)测试通过
Jul 02 #PHP
用PHP为SHOPEX增加日志功能代码
Jul 02 #PHP
php操作excel文件 基于phpexcel
Jul 02 #PHP
PHP 多维数组排序(usort,uasort)
Jun 30 #PHP
PHP 数组遍历方法大全(foreach,list,each)
Jun 30 #PHP
PHP extract 将数组拆分成多个变量的函数
Jun 30 #PHP
PHP 反向排序和随机排序代码
Jun 30 #PHP
You might like
php 批量添加多行文本框textarea一行一个
2014/06/03 PHP
php实现的支持断点续传的文件下载类
2014/09/23 PHP
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
javascript:void(0)的问题使用探讨
2014/04/10 Javascript
jQuery 计算iframe 窗口大小的方法
2014/05/13 Javascript
JavaScript实现继承的4种方法总结
2014/10/16 Javascript
js和jquery实现监听键盘事件示例代码
2020/06/24 Javascript
详解Vue 普通对象数据更新与 file 对象数据更新
2017/04/26 Javascript
layui 设置table 行的高度方法
2018/08/17 Javascript
对Vue beforeRouteEnter 的next执行时机详解
2018/08/25 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
vue中通过使用$attrs实现组件之间的数据传递功能
2019/09/01 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
koa-passport实现本地验证的方法示例
2020/02/20 Javascript
vue+ESLint 配置保存 自动格式化代码
2020/03/17 Javascript
Nodejs文件上传、监听上传进度的代码
2020/03/27 NodeJs
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
Python实现基于二叉树存储结构的堆排序算法示例
2017/12/08 Python
Pyinstaller将py打包成exe的实例
2018/03/31 Python
python监控进程脚本
2018/04/12 Python
详解Django+uwsgi+Nginx上线最佳实战
2019/03/14 Python
Pycharm如何打断点的方法步骤
2019/06/13 Python
TensorFlow MNIST手写数据集的实现方法
2020/02/05 Python
Python字典添加,删除,查询等相关操作方法详解
2020/02/07 Python
Python3操作YAML文件格式方法解析
2020/04/10 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
Expedia瑞典官网:预订度假屋、酒店、汽车租赁、机票等
2021/01/23 全球购物
办理暂住证介绍信
2014/01/11 职场文书
时尚休闲吧创业计划书
2014/01/25 职场文书
企业年会主持词
2014/03/27 职场文书
2014年采购工作总结
2014/11/20 职场文书
酒店人事专员岗位职责
2015/04/07 职场文书
2015年行政人事部工作总结
2015/05/13 职场文书
埃及王子观后感
2015/06/16 职场文书
JavaScript高级程序设计之变量与作用域
2021/11/17 Javascript