php防盜鏈幾種代碼
來源:程序員人生 發布時間:2013-12-10 18:50:29 閱讀次數:3053次
我們這里講述的防盜鏈代碼只專注于php的解決方案,當然如果你有服務器管理權限或htaccess文件操作我建義不要用php防盜鏈哦。
先來看個最簡單的,下面是php實現的代碼,xxx.mp3就是你的音樂文件的實際地址,對外傳播的時候只傳播php地址,mp3地址對外不公開,代碼如下:
- <?php
- if(strpos($_SERVER['HTTP_REFERER'], 'qq.com') !== FALSE) {
- header('HTTP/1.1 404 Not Found');
- exit;
- }
- readfile('xxx.mp3');
- ?>
可以加入白名單的做法,代碼如下:
- <?php
-
-
-
-
- $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']);
- ?>
支持白名單二,代碼如下:
- <?php
- $ADMIN[defaulturl] = "http://www.phpfensi.com/404.htm";//盜鏈返回的地址
- $okaysites = array("http://www.phpfensi.com/","http://phpfensi.com"); //白名單
- $ADMIN[url_1] = "http://www.phpfensi.com/download/";//下載地點1
- $ADMIN[url_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來操作。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈