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、MySQL 和 Zend Framework 的乱码问题
Mar 03 PHP
php Xdebug的安装与使用详解
Jun 20 PHP
PHP怎么实现网站保存快捷方式方便用户随时浏览
Aug 15 PHP
php 生成自动创建文件夹并上传文件的示例代码
Mar 07 PHP
PHP闭包实例解析
Sep 08 PHP
常用PHP框架功能对照表
Oct 23 PHP
php实现webservice实例
Nov 06 PHP
php绘制一个扇形的方法
Jan 24 PHP
php创建、获取cookie及基础要点分析
Jan 26 PHP
php curl登陆qq后获取用户信息时证书错误
Feb 03 PHP
php设置页面超时时间解决方法
Sep 22 PHP
php文件上传原理与实现方法详解
Dec 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 define函数的使用说明
2008/08/27 PHP
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
smarty循环嵌套用法示例分析
2016/07/19 PHP
Firefox getBoxObjectFor getBoundingClientRect联系
2008/10/26 Javascript
Javascript 圆角div的实现代码
2009/10/15 Javascript
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
2010/03/02 Javascript
jQuery 绑定事件到动态创建的元素上的方法实例
2013/08/18 Javascript
实用的Jquery选项卡TAB示例代码
2013/08/28 Javascript
调用DOM对象的focus使文本框获得焦点
2014/02/19 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
React组件之间的通信的实例代码
2017/06/27 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
Angular4学习之Angular CLI的安装与使用教程
2018/01/04 Javascript
ng-repeat指令在迭代对象时的去重方法
2018/10/02 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
2019/11/13 Javascript
原生JavaScript实现滑动拖动验证的示例代码
2019/12/06 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
2020/04/26 Javascript
Python升级提示Tkinter模块找不到的解决方法
2014/08/22 Python
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
基于Python实现文件大小输出
2016/01/11 Python
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
python用BeautifulSoup库简单爬虫实例分析
2018/07/30 Python
Python 经典面试题 21 道【不可错过】
2018/09/21 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
2019/10/17 Python
python统计字符的个数代码实例
2020/02/07 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
巴西宠物店在线:Geração Pet
2017/05/31 全球购物
linux面试题参考答案(8)
2015/08/11 面试题
一套英文Java笔试题面试题
2016/04/21 面试题
公司总经理助理岗位职责
2014/07/09 职场文书
地雷战观后感
2015/06/09 职场文书
关于JavaScript 中 if包含逗号表达式
2021/11/27 Javascript