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_Flame(Version:Progress)的原代码
Oct 09 PHP
收集的DedeCMS一些使用经验
Mar 17 PHP
PHP项目开发中最常用的自定义函数整理
Dec 02 PHP
php iconv() : Detected an illegal character in input string
Dec 05 PHP
php利用cookie实现访问次数统计代码
May 19 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
Nov 29 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
Mar 18 PHP
php自定义apk安装包实例
Oct 20 PHP
CentOS下PHP安装Oracle扩展
Feb 15 PHP
php获取网站根目录物理路径的几种方法(推荐)
Mar 04 PHP
PHP使用Redis长连接的方法详解
Feb 12 PHP
thinkphp5使用无限极分类
Feb 18 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读取IMAP邮件
2006/10/09 PHP
php 正则 过滤html 的超链接
2009/06/02 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
2014/08/23 PHP
PHP正则删除HTML代码中宽高样式的方法
2017/06/12 PHP
js获取图片长和宽度的代码
2009/11/24 Javascript
js中格式化日期时间型数据函数代码
2010/11/08 Javascript
JavaScript设计模式之建造者模式介绍
2014/12/28 Javascript
jQuery中extend函数详解
2015/02/13 Javascript
使用纯javascript实现经典扫雷游戏
2015/04/23 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
AngularJS手动表单验证
2016/02/01 Javascript
BootStrap文件上传样式超好看【持续更新】
2016/05/10 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
AngularJS 模块详解及简单实例
2016/07/28 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
详解JavaScript 为什么要有 Symbol 类型?
2019/04/03 Javascript
python类定义的讲解
2013/11/01 Python
python让图片按照exif信息里的创建时间进行排序的方法
2015/03/16 Python
简单讲解Python中的字符串与字符串的输入输出
2016/03/13 Python
Python自动化部署工具Fabric的简单上手指南
2016/04/19 Python
python 标准差计算的实现(std)
2019/07/29 Python
Python matplotlib画曲线例题解析
2020/02/07 Python
Python Scrapy多页数据爬取实现过程解析
2020/06/12 Python
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
2016/04/15 面试题
sort命令的作用和用法
2013/08/25 面试题
大学生村官承诺书
2014/03/28 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
年会主持人开场白台词
2015/05/29 职场文书
python 模块重载的五种方法
2021/04/24 Python
python中filter,map,reduce的作用
2022/06/10 Python
React自定义hook的方法
2022/06/25 Javascript