Zend - The PHP Company




Files and Directories

Add Code


Download Security  

Type: class
Added by: jmaurin
Entered: 29/07/2003
Last modified: 09/12/2002
Rating: **** (4 votes)
Views: 6749
This class block any download from unauthorized site to your files. You can also share files stored in non-web folder.


<?
/*********************************************/
/*     Desenvolvido por Jonis Maurin Cear�   */
/*           jonis@jonis.cjb.net             */
/*              ( LifeGuarD )                */
/*              UIN: 5719948                 */
/*                                           */
/*                                           */
/*    This class block download from         */
/*    other sites. You can add domains       */
/*    that are enabled to download your      */
/*    files. You can also share files        */
/*    that are in non-web folder.            */
/*                                           */
/*                                           */
/*               Questions?                  */
/*       e-mail: jonis@jonis.cjb.net         */
/*                                           */
/*                                           */
/*    This script is freeware, you are       */
/*    free to copy, but you should keep      */
/*    copyright note.                        */
/*                                           */
/*    Este script � freeware, voce pode      */
/*    usa-lo a vontade desde que mantenha    */
/*    os creditos no mesmo.                  */
/*                                           */
/*********************************************/

class D_Security {
    
    var 
$lista;
    var 
$path;
    
    function 
Dow_Security() {
        
$this->lista = array(); // Create empty host list
        
$this->path "./"// set default path do current folder
    
}
    
    function 
SetPath($path) {
        
$this->path $path;   
    }
    
    function 
AddHost($host) {
        if (empty(
$host)) {
            return 
false;
        }
        
$this->lista[] = $host;
        return 
true;
    }
    
    function 
RemoveHost($host) {
        for (
$i=0;$i<count($this->lista);$i++) {
            if (
$this->lista[$i]==$host) {
                
$this->RemoveArrayItem($this->lista,$i);
            }
        }
    }
    
    function 
ListHosts() {
        return 
$this->lista;
    }
    
    function 
RemoveArrayItem(&$ar,$item)
    {
        
$ar array_merge(array_splice($ar,0,$item),array_splice($ar,1));
    }
    
    function 
DownloadFile($filename) {
        if (
$this->ChecaReferer() == true) {
            
$fil $this->$path.$filename;
            
header("Content-type: application/octet-stream");
            
header("Content-disposition: attachment; filename=".basename($fil));
            
header("Content-Transfer-Encoding: binary");
            
header("Content-Length: ".filesize("$fil"));
            
readfile($fil);
            return 
true;
        } else {
            return 
false;
        }
        
    }
    
    function 
ChecaReferer() {
        
$cont count($this->lista);
        
        for (
$x=0;$x<$cont;$x++) {
            if (
eregi($this->lista[$x],$_SERVER["HTTP_REFERER"])) {
                return 
true;
                break;
            }
            
        }
        
    }
    
}
// Example
$dow = new D_Security(); // Create new object
$dow->SetPath("./"); // set the folrder where the files are stored

$dow->AddHost("www.your-website.com"); // Add host to list
$dow->AddHost($_SERVER["HTTP_REFERER"]); // Add host to list

if (!$dow->DownloadFile("example.exe")) { // Download the file
    
echo "<br>Error: you are trying to download this file from unauthorized site<br>";
    echo 
"Try again from authorized host now: <a href=downloader.php>link</a>";
}


?>


Usage Example


$dow = new D_Security(); // Create new object
$dow->SetPath("./"); // set the folrder where the files are stored

$dow->AddHost("www.your-website.com"); // Add host to list
$dow->AddHost($_SERVER["HTTP_REFERER"]); // Add host to list

if (!$dow->DownloadFile("example.exe")) { // Download the file
    echo "<br>Error: you are trying to download this file from unauthorized site<br>";
    echo "Try again from authorized host now: <a href=downloader.php>link</a>";
}


Rate This Script





Search



This Category All Categories