Показать сообщение отдельно

защита файлов от скачки на других сайтов
  #938  
Старый 08.11.2009, 15:05
SL@YER
Новичок
Регистрация: 15.10.2007
Сообщений: 24
Провел на форуме:
386127

Репутация: 7
По умолчанию защита файлов от скачки на других сайтов

PHP код:
<?php

// Настройки

$antiurl "d0pz.com";               // Разрешённые сайты (referer).
$antidir "test/";                  // Папка где находятся защищённые файлы  / - обязательно в конце.
//$logfile = "log.htm";              // Eсли хотите вести лог удалите // перед строкой. Файл логов (должен быть html или htm и обязательно CHMOD 777.


// Логи

if (isset($logfile)) {
if (!
file_exists($logfile)) die("Файл <font color='red'><b>$logfile</b></font> не найден!");
if (!
is_writable($logfile)) die("Для файла <font color='red'><b>$logfile</b></font> нужно зделать CHMOD 777!");
$cnr_date date("l d F H:i:s");
$cnr_counter $logfile;
$cnr_fp fopen($cnr_counter"a");
$cnr_hostname gethostbyaddr($_SERVER['REMOTE_ADDR']);
if (
$_SERVER['HTTP_REFERER'] == "")
$cnr_ref "BLOCKED"; } else { $cnr_ref "<a href=\"" $_SERVER['HTTP_REFERER'] . "\">" $_SERVER['HTTP_REFERER'] . "</a>";}
$cnr_data "<font color=\"green\">" $_SERVER['REMOTE_ADDR'] . "</font> HOST <font color=\"red\">" $cnr_hostname "</font> visited on " $cnr_date " linked by " $cnr_ref " <br>";
fputs($cnr_fp$cnr_data);
fclose($cnr_fp); }

// Проверка реферера

$mtu "PGg2PjxhIHN0eWxlPSd0ZXh0LWRlY29yYXRpb246bm9uZTsgY29sb3I6Izk5MDAwMCcgaHJlZj0naHR0cDovL3d3dy5kMHB6LmNvbSc+QW50aWxlZWNoIHYwLjE8L2E+PC9oNj4="$c base64_decode($mtu);
if (!
strstr($_SERVER["HTTP_REFERER"], $antiurl) or !isset($_SERVER["HTTP_REFERER"]))
{echo 
'<html><p></p>' $c '<p></p></body></html>'; exit;}

if (
is_numeric($_GET["down"]))
{
/************НАЧАЛО ФАЙЛОВ***************************************************************************/

    // Здесь идут файлы для скачивания

    
if ($_GET["down"] == 1)
        
$filename "test.rar";
    elseif (
$_GET["down"] == 2)
        
$filename "test2.rar";
    elseif (
$_GET["down"] == 3)
        
$filename "test3.rar";



/************КОНЕЦ ФАЙЛОВ***************************************************************************/

    //Находим окончание файла

    
$splitexplode("."$filename);
    
$textcountsubstr_count($filename".")+1//
    
$ttype =$split[$nextcount];

    
// Создается ссылка на файл

    
$path $antidir $filename ;


    
// Проверка файла есть он или нет

    
if (!file_exists($path)) {

        echo 
"Файл '$filename' не существует.";
        echo 
$c;
        exit;                }

    
$ftime date("D, d M Y H:i:s T"filemtime($path));

}
  
    
// Проверка

    
if (strstr($_SERVER["HTTP_REFERER"], $antiurl)) {
            if (isset(
$_GET['down']) && isset($filename)) {

    
$fsize filesize($path);
    
$ftime date("D, d M Y H:i:s T"filemtime($path));
    
$fd = @fopen($path"rb");
    if (!
$fd){
      
header ("HTTP/1.0 403 Forbidden");
      exit;
    }


    if (
$HTTP_SERVER_VARS["HTTP_RANGE"]) {
      
$range $HTTP_SERVER_VARS["HTTP_RANGE"];
      
$range str_replace("bytes="""$range);
      
$range str_replace("-"""$range);
      if (
$range) {fseek($fd$range);}
    }
    
$content fread($fdfilesize($path));
    
fclose($fd);
    if (
$range) {
      
header("HTTP/1.1 206 Partial Content");
    }
    else {
      
header("HTTP/1.1 200 OK");
    }
    
header("Content-Disposition: attachment; filename=" basename($path));
    
header("Last-Modified: $ftime");
    
header("Accept-Ranges: bytes");
    
header("Content-Length: ".($fsize-$range));
    
header("Content-Range: bytes $range-".($fsize -1)."/".$fsize);
    
header("Content-type: application/octet-stream");
    print 
$content;
    exit;

    } else { echo 
"Недействительный файл."; echo $c; } }


 exit;

?>
Добавление файлов:
Находим строку (43):
/************НАЧАЛО ФАЙЛОВ***************/

Здесь идут ваши защищённые файлы из папки.

elseif ($_GET["down"] == 2) пишиться номер файла от 1- и так далее.
$filename = "test2.rar"; файл в папке ($antidir).

Потом даем ссылку на скачивание пример: http://example.com/antileech.php?down=4 <-- номер файла

Последний раз редактировалось SL@YER; 08.11.2009 в 15:12..
 
Ответить с цитированием