• 技术文章 >php教程 >php手册

    php防盗链几种代码

    2016-06-02 09:15:00原创578
    我们这里讲述的防盗链代码只专注于php的解决方案,当然如果你有服务器管理权限或htaccess文件操作我建义不要用php防盗链哦。

    先来看个最简单的
    下面是php实现的代码, xxx.mp3就是你的音乐文件的实际地址, 对外传播的时候只传播php地址,mp3地址对外不公开

    代码如下 复制代码
    if(strpos($_SERVER['HTTP_REFERER'], 'qq.com') !== FALSE) {
    header('HTTP/1.1 404 Not Found');
    exit;
    }
    readfile('xxx.mp3');
    ?>

    可以加入白名单的做法

    代码如下 复制代码
    /**
    * @author seraphim
    * @copyright 2012
    */
    $ADMIN = array(
    'defaulturl'=> 'http://www.xx.com/images/banner-header.gif', //盗链返回的地址
    'url_1' => 'http://www.xx.net/file',
    'url_2' => 'http://www.xx.net/file1',
    );
    $okaysites = array(
    'http://box.baidu.com',
    'http://tieba.baidu.com/p/1493336008', //白名单
    'http://www.xx.com/1.html',
    );
    $reffer = $_SERVER['HTTP_REFERER'];
    if ($reffer) {
    $yes = 0;
    while (list($domain, $subarray) = each($okaysites)) {
    if (ereg($subarray, "$reffer")) {
    $yes = 1;
    }
    }
    $theu = 'url_' . $_GET['site'];
    $file = $_GET['file'];
    if ($ADMIN[$theu] and $yes == 1) {
    header("Location: $ADMIN[$theu]/$file");
    } else {
    header("Location: $ADMIN[defaulturl]");
    }
    } else {
    header("Location: $ADMIN[defaulturl]");
    }
    print_r($_SERVER['HTTP_REFERER']);
    ?>

    实例3 [支持白名单二]

    代码如下 复制代码

    $ADMIN[defaulturl] = "http://www.phprm.com/404.htm";//盗链返回的地址
    $okaysites = array("http://www.phprm.com/","http://phprm.com"); //白名单
    $ADMIN[url_1] = "http://www.phprm.com/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]");
    }

    ?>

    还有很多的方法来实现防盗链本文章只讲到了利用php实现,像有些站生成了html这样做起来就不怎么方便了,我们可以在iis,apache,htaccess来操作。



    本文地址:

    转载随意,但请附上文章地址:-)

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:
    上一篇:php无限分类可支持输出树状图实现代码 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • php利用新浪接口查询ip获取地理位置• 使用PHP 5.0 轻松解析XML文档(4)• PHP保存带BOM文件的方法,• smarty模板引擎从php中获取数据的方法,smarty模板• PHP 修改RAR文件注释及添加压缩文档讲解
    1/1

    PHP中文网