php防盗链的常用方法小结

 更新时间:2010年07月02日 23:33:55   作者:  
php防盗链的方法,大家可以参考下。
1.简单防盗链
复制代码 代码如下:

$ADMIN[defaulturl] = "http://jb51.net/404.htm";//盗链返回的地址
$okaysites = array("http://jb51.net/","https://www.jb51.net"); //白名单
$ADMIN[url_1] = "http://jb51.net/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://jb51.net/temp/download里面,
则用以下代码表示下载连接.


CODE: [Copy to clipboard]
文件名?site=1&file=文件

2.服务器防盗链
用到iis防盗链软件,可以搜下,网上有很多。s.jb51.net里面有的下

3.软件下载的防盗链方法

复制代码 代码如下:

//放置下载软件的根目录相对于当前脚本目录的相对目录
$fileRelPath = "../../software";
//例外允许连接的网址,注意:自身域名不需要填入,设定为肯定可以下载,
// 空字符串("")表示直接输入网址下载的情况
$excludeReferArr = array("www.wjb51.net", "wjb51.net");

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模拟post提交请求调用接口示例解析

    php模拟post提交请求调用接口示例解析

    这篇文章主要介绍了php模拟post提交请求调用接口示例解析,文章通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • PHP查询附近的人及其距离的实现方法

    PHP查询附近的人及其距离的实现方法

    这篇文章主要介绍了PHP查询附近的人及其距离的实现方法,涉及php数学运算的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2016-05-05
  • 提高php运行速度的一些小技巧分享

    提高php运行速度的一些小技巧分享

    使用PHP的最大1个优势就是速度快。一般情况下,PHP总是具有足够的速度支持Web内容动态生成,许多时候甚至无法找出比它更快的方法。然而,当面对庞大的访问量、高负荷的应用、有限的带宽,以及其他各种带来性能瓶颈的因素时,就需要考虑怎样提高PHP的性能了
    2012-07-07
  • 详解php的socket通信

    详解php的socket通信

    这篇文章通过案例演示详细介绍了php的socket通信,对每一段代码进行了分析,每一步骤都配有详细说明,感兴趣的的朋友可以参考下
    2015-08-08
  • php链表用法实例分析

    php链表用法实例分析

    这篇文章主要介绍了php链表用法,实例分析了php创建链表及针对链表节点的增加、删除、更新与遍历等常用操作,需要的朋友可以参考下
    2015-07-07
  • php对关联数组循环遍历的实现方法

    php对关联数组循环遍历的实现方法

    这篇文章主要介绍了php对关联数组循环遍历的实现方法,涉及php操作数组的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • PHP中设置时区,记录日志文件的实现代码

    PHP中设置时区,记录日志文件的实现代码

    php中设置时区 记录日志文件的实现代码,需要的朋友可以参考下
    2013-01-01
  • php设计模式 Delegation(委托模式)

    php设计模式 Delegation(委托模式)

    php设计模式 Delegation 委托模式示例代码,需要的朋友可以参考下。
    2011-06-06
  • PHP中使用unset销毁变量并内存释放问题

    PHP中使用unset销毁变量并内存释放问题

    PHP的unset()函数用来清除、销毁变量,不用的变量,我们可以用unset()将它销毁。但是某些时候,用unset()却无法达到销毁变量占用的内存!
    2012-07-07
  • php获取一个变量的名字的方法

    php获取一个变量的名字的方法

    将当前变量的值保存到一个临时变量中,然后再对原变量赋唯一值,以便查找出变量的名字,找到名字后,将临时变量的值重新赋值到原变量
    2014-09-09

最新评论