一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

php防盗链几种代码

时间:2012-06-05 编辑:简简单单 来源:一聚教程网

先来看个最简单的
下面是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.111com.net/404.htm";//盗链返回的地址
$okaysites = array("http://www.111com.net/","http://111com.net"); //白名单
$ADMIN[url_1] = "http://www.111com.net/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来操作。

热门栏目