程序员人生 网站导航

php防盗链几种代码

栏目:php教程时间:2013-12-10 18:50:29

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

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

  1. <?php 
  2.  if(strpos($_SERVER['HTTP_REFERER'], 'qq.com') !== FALSE) { 
  3.   header('HTTP/1.1 404 Not Found'); 
  4.   exit
  5.  } 
  6.  readfile('xxx.mp3'); 
  7. ?> 

可以加入白名单的做法,代码如下:

  1. <?php  
  2. /**  
  3. * @author seraphim  
  4. * @copyright 2012  
  5. */  
  6. $ADMIN = array(  
  7. 'defaulturl'=> 'http://www.xx.com/images/banner-header.gif', //盗链返回的地址  
  8. 'url_1' => 'http://www.xx.net/file',  
  9. 'url_2' => 'http://www.xx.net/file1',  
  10. );  
  11. $okaysites = array(  
  12. 'http://box.baidu.com',  
  13. 'http://tieba.baidu.com/p/1493336008', //白名单  
  14. 'http://www.xx.com/1.html',  
  15. );  
  16. $reffer = $_SERVER['HTTP_REFERER'];  
  17. if ($reffer) {  
  18. $yes = 0;  
  19. while (list($domain$subarray) = each($okaysites)) {  
  20. if (ereg($subarray"$reffer")) {  
  21. $yes = 1;  
  22. }  
  23. }  
  24. $theu = 'url_' . $_GET['site'];  
  25. $file = $_GET['file'];  
  26. if ($ADMIN[$theuand $yes == 1) {  
  27. header("Location: $ADMIN[$theu]/$file");  
  28. else {  
  29. header("Location: $ADMIN[defaulturl]");  
  30. }  
  31. else {  
  32. header("Location: $ADMIN[defaulturl]");  
  33. }  
  34. print_r($_SERVER['HTTP_REFERER']);  
  35. ?> 

支持白名单二,代码如下:

  1. <?php 
  2. $ADMIN[defaulturl] = "http://www.phpfensi.com/404.htm";//盗链返回的地址 
  3. $okaysites = array("http://www.phpfensi.com/","http://phpfensi.com"); //白名单  
  4. $ADMIN[url_1] = "http://www.phpfensi.com/download/";//下载地点1 
  5. $ADMIN[url_2] = "";//下载地点2,以此类推 
  6. $reffer = $HTTP_REFERER
  7. if($reffer) { 
  8. $yes = 0; 
  9. while(list($domain$subarray) = each($okaysites)) { 
  10. if (ereg($subarray,"$reffer")) { 
  11. $yes = 1; 
  12. $theu = "url"."_"."$site"
  13. if ($ADMIN[$theu] AND $yes == 1) { 
  14. header("Location: $ADMIN[$theu]/$file"); 
  15. else { 
  16. header("Location: $ADMIN[defaulturl]"); 
  17. else { 
  18. header("Location: $ADMIN[defaulturl]"); 
  19. ?>  

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

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐