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 相关文章推荐
Linux下php5.4启动脚本
Aug 03 PHP
PHP中数据库单例模式的实现代码分享
Aug 21 PHP
thinkphp模板的包含与渲染实例分析
Nov 26 PHP
Laravel 5框架学习之日期,Mutator 和 Scope
Apr 08 PHP
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
Aug 28 PHP
PHP安装threads多线程扩展基础教程
Nov 17 PHP
对PHP依赖注入的理解实例分析
Oct 09 PHP
PHP MYSQL简易交互式站点开发
Dec 27 PHP
解决laravel 5.1报错:No supported encrypter found的办法
Jun 07 PHP
PHP微信H5支付开发实例
Jul 25 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
Oct 15 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 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
实用函数8
2007/11/08 PHP
php准确获取文件MIME类型的方法
2015/06/17 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
Dom操作之兼容技巧分享
2011/09/20 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
浅析Vue项目中使用keep-Alive步骤
2018/07/27 Javascript
vue在自定义组件中使用v-model进行数据绑定的方法
2019/03/25 Javascript
详解Node.js一行命令上传本地文件到服务器
2019/04/22 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
2019/06/03 Javascript
[01:02]DOTA2辉夜杯决赛日 CDEC.Y对阵VG赛前花絮
2015/12/27 DOTA
python getopt 参数处理小示例
2009/06/09 Python
下载安装setuptool和pip linux安装pip    
2014/01/24 Python
python正则表达式match和search用法实例
2015/03/26 Python
在Python中使用SQLite的简单教程
2015/04/29 Python
Python监控主机是否存活并以邮件报警
2015/09/22 Python
Python生成随机密码的方法
2017/06/16 Python
python使用threading.Condition交替打印两个字符
2019/05/07 Python
python的set处理二维数组转一维数组的方法示例
2019/05/31 Python
html5中audio支持音频格式的解决方法
2018/08/24 HTML / CSS
Html5与App的通讯方式详解
2019/10/24 HTML / CSS
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
存储过程和函数的区别
2013/05/28 面试题
合伙经营协议书范本
2014/04/18 职场文书
项目负责人任命书
2014/06/04 职场文书
中文专业自荐书
2014/06/29 职场文书
材料化学专业求职信
2014/07/15 职场文书
2014年妇幼卫生工作总结
2014/12/09 职场文书
高中班主任评语
2014/12/30 职场文书
四风之害观后感
2015/06/09 职场文书
在职证明书模板
2015/06/15 职场文书
冰雪公主观后感
2015/06/16 职场文书
学生会招新宣传语
2015/07/13 职场文书
小学校本教研总结
2015/08/13 职场文书
apache基于端口创建虚拟主机的示例
2021/04/22 Servers
zabbix监控mysql的实例方法
2021/06/02 MySQL