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 相关文章推荐
Ajax PHP 边学边练 之三 数据库
Nov 26 PHP
几种有用的变型 PHP中循环语句的用法介绍
Jan 30 PHP
PHP中替换换行符的几种方法小结
Oct 15 PHP
深入解析PHP垃圾回收机制对内存泄露的处理
Jun 14 PHP
深入PHP5中的魔术方法详解
Jun 17 PHP
php表单请求获得数据求和示例
May 15 PHP
PHP过滤黑名单关键字的方法
Dec 01 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
Dec 16 PHP
discuz目录文件资料汇总
Dec 30 PHP
php实现将base64格式图片保存在指定目录的方法
Oct 13 PHP
php面向对象的用户登录身份验证
Jun 08 PHP
PHP生成腾讯云COS接口需要的请求签名
May 20 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中设置时区,记录日志文件的实现代码
2013/01/07 PHP
PHP实现自动识别Restful API的返回内容类型
2015/02/07 PHP
Laravel 5 框架入门(四)完结篇
2015/04/09 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
js兼容标准的表格变色效果
2008/06/28 Javascript
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
jQuery DOM插入节点操作指南
2015/03/03 Javascript
分享十五款 jQuery 社交网络分享插件
2015/05/16 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
兼容浏览器的js事件绑定函数(详解)
2017/05/09 Javascript
微信小程序利用co处理异步流程的方法教程
2017/05/20 Javascript
jquery Ajax实现Select动态添加数据
2017/06/08 jQuery
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
基于Vue实现关键词实时搜索高亮显示关键词
2018/07/21 Javascript
JSONP原理及应用实例详解
2018/09/13 Javascript
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
浅谈Vue项目骨架屏注入实践
2019/08/05 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
Python设计模式中单例模式的实现及在Tornado中的应用
2016/03/02 Python
Python实现Kmeans聚类算法
2020/06/10 Python
python实现音乐下载器
2018/04/15 Python
使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)
2019/05/28 Python
python统计文章中单词出现次数实例
2020/02/27 Python
Python使用os.listdir和os.walk获取文件路径
2020/05/21 Python
python3跳出一个循环的实例操作
2020/08/18 Python
HTML5中视频音频的使用详解
2017/07/07 HTML / CSS
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
如何启动时不需输入用户名与密码
2014/05/09 面试题
专科毕业生自我鉴定
2013/12/01 职场文书
学校消防安全责任书
2014/07/23 职场文书
社区志愿者活动方案
2014/08/18 职场文书
幼儿园见习总结
2015/06/23 职场文书
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL