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.ini中添加extension=php_mysqli.dll指令的说明
Jun 14 PHP
一家之言的经验之谈php+mysql扎实个人基本功
Mar 27 PHP
php 变量定义方法
Jun 14 PHP
PHP中的cookie不用刷新就生效的方法
Feb 04 PHP
无刷新动态加载数据 滚动条加载适合评论等页面
Oct 16 PHP
php生成shtml类用法实例
Dec 09 PHP
php检测apache mod_rewrite模块是否安装的方法
Mar 14 PHP
phpcms中的评论样式修改方法
Oct 21 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
Mar 04 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
django中的ajax组件教程详解
Oct 18 PHP
浅谈php使用curl模拟多线程发送请求
Mar 08 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实现的英文名字全拼随机排号脚本
2014/07/04 PHP
JQuery UI DatePicker中z-index默认为1的解决办法
2010/09/28 Javascript
js控制的回到页面顶端goTop的代码实现
2013/03/20 Javascript
Javascript四舍五入Math.round()与Math.pow()使用介绍
2013/12/27 Javascript
收集json解析的四种方法分享
2014/01/17 Javascript
javascript 实现 原路返回
2015/01/21 Javascript
JavaScript按值删除数组元素的方法
2015/04/24 Javascript
原生JS封装Ajax插件(同域、jsonp跨域)
2016/05/03 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
jquery设置css样式的多种方法(总结)
2017/02/21 Javascript
jQuery表格(Table)基本操作实例分析
2017/03/10 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
2017/05/26 jQuery
react-native中ListView组件点击跳转的方法示例
2017/09/30 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
2017/11/20 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
[06:38]DOTA2怒掀电竞风暴 2013Chinajoy
2013/07/27 DOTA
python实现汉诺塔递归算法经典案例
2021/03/01 Python
python实现银联支付和支付宝支付接入
2019/05/07 Python
numpy和pandas中数组的合并、拉直和重塑实例
2019/06/28 Python
python爬虫刷访问量 2019 7月
2019/08/01 Python
Python使用Pandas读写Excel实例解析
2019/11/19 Python
python 牛顿法实现逻辑回归(Logistic Regression)
2020/10/15 Python
python 如何在测试中使用 Mock
2021/03/01 Python
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
Ejb技术面试题
2015/04/29 面试题
化工专业应届生求职信
2013/11/08 职场文书
药剂专业学生求职信范文
2013/12/28 职场文书
企业车辆管理制度
2014/01/24 职场文书
工程招投标邀请书
2014/01/30 职场文书
女生节标语
2014/06/26 职场文书
解放思想演讲稿
2014/09/11 职场文书
国际贸易实训报告
2014/11/05 职场文书
消防宣传标语大全
2015/08/03 职场文书
PostgreSQL将数据加载到buffer cache中操作方法
2021/04/16 PostgreSQL
Python基础之hashlib模块详解
2021/05/06 Python