Antileech voor downloads

Door Bas Kreleger, 20 jaar geleden, 3.756x bekeken

Lees de comments. Valt uit te breiden :)

Maak linkjes zoals deze:

<a href="anti.php?did=1">Download het bestand</a><br />
<a href="anti.php?did=2">Download bestand 2</a><br />

etc.

Voorbeeld: http://

Gesponsorde koppelingen

PHP script bestanden

  1. antileech-voor-downloads

 

Er zijn 19 reacties op 'Antileech voor downloads'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Arend a
Arend a
20 jaar geleden
 
0 +1 -0 -1
Bassie

Je moet echt iets aan je gewoonte alles in IF statements te dumpen doen. Bah.

Zeker wanneer je zulk soort ongein zo makkelijk met een array kan oplossen!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?

if (strstr($_SERVER["HTTP_REFERER"], $antiurl) && is_numeric($_GET["did"]))
{

    $file[did] = "filename";
    // etc.. etc.. kan ook in mysql of datasource van uw smaak..

    if (key_exists($_GET["did"], $file)) {
        // kijk of de file voorkomt..
        $filename = $file[$_GET["did"]];
    
        $mime = mime_content_type($filename);
        // als meegecompiled is in php kan je hiermee vrijwel elke mime-type detecteren (zie http://nl.php.net/manual/en/ref.mime-magic.php)
        sendfile($file);
        // dit gebeuren is hierboven beschreven
    } else {
       // file niet bekend error! (ook niet beschreven boven)
    }
}
else {
    // foutmelding, je komt niet van de goede url.
}
?>


Even wat comments: de HTTP_REFERER header wordt door de browser gestuurd en dus niet waterdicht. Sterker nog, deze is erg makkelijk te omzeilen.

Desondanks zal het wel haar werk doen :)

Grtz,

Adje
Bas Kreleger
Bas Kreleger
20 jaar geleden
 
0 +1 -0 -1
ook goede oplossing.. wist niet dat het zo ook kon.. ;>
Arend a
Arend a
20 jaar geleden
 
0 +1 -0 -1
Pf.

Prutser :))


20 jaar geleden
 
0 +1 -0 -1
Maar andere mensen kunnen dan toch nog gewoon doorlinken naar jou php script om te downloaden??


20 jaar geleden
 
0 +1 -0 -1
Dis nix vergeleke VB :D


19 jaar geleden
 
0 +1 -0 -1
Jup, VB is pas echt makkelijk :)


19 jaar geleden
 
0 +1 -0 -1
Ik heb nu het volgende script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?
//
//Antilleech
//
// defineer de antileech URL

$antiurl = "downloads.theovds.com";

//
// kijk of "$antiurl" wel voorkomt de URL
//

if (strstr($_SERVER["HTTP_REFERER"], $antiurl) && is_numeric($_GET["did"]))
{

    //
    // link id nummers met bestanden
    //

    if ($_GET["did"] == 1)
        $filename = "http://www.verhaartje.com/~theo/downloads/topstyle.exe";
              
    //
    // kijk wat voor bestand het is
    //

    if (substr($filename, -3) == "zip")
        $mime = "zip";
    elseif (substr($filename, -3) == "exe")
        $mime = "octet-stream";
    elseif (substr($filename, -3) == "pdf")
        $mime = "pdf";
    elseif (substr($filename, -3) == "doc")
        $mime = "msword";
     elseif (substr($filename, -3) == "rar")
        $mime = "rar";

    
    // verstuur de headers om het bestand te downloaden
    $filesize= filesize($filename);
    header("Content-Type: application/$mime");
    header("Content-Length: $filesize");
    header("Content-Disposition: attachment; filename=$filename");
    $fp = fopen($filename, 'rb');
    $buffer = fread($fp, $filesize);
    fclose ($fp);
    echo $buffer;
    exit();
}
  
else
{
    echo "<h1>Antileech activated</h1>";
    
    echo "Je komt niet van URL adres: <b>$antiurl</b>";
}
  
//
//end antileech
//

?>


En ik link door met bijvoorbeeld: <a href=\"./antileech.php?did=1\">TopStyle Pro 3.1</a>

Maar als ik nu op de link klik kan ik een bestanje downloaden met de naam antileech.zonder extensie
???????

En als ik via dit script naar http://downloads.theovds.com/antileech.php gaat zegt hij nog dat het de verkeerde url is :(
Legolas
Legolas
19 jaar geleden
 
0 +1 -0 -1
dat komt omdat de filename een url is, dus die url moet je er later bij plakken, maak gewoon een filename var en een relatieve filename aan de hand van de script locatie. (dus "../downloads/" . $filename of wat dan ook) trouwens, wrm hebben sommige if's geen { } - haken? T zal wel niet veel uitmaken maar ik vind het persoonlijk wel net om ze erbij te zetten :P


19 jaar geleden
 
0 +1 -0 -1
Zo bedoel je?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?PHP

//
//Antilleech
//
// defineer de antileech URL

$antiurl = "downloads.theovds.com" ;  

//
// kijk of "$antiurl" wel voorkomt de URL
//

if (strstr($_SERVER["HTTP_REFERER"], $antiurl) && is_numeric($_GET["did"])){  
  
    //
    // link id nummers met bestanden
    //

     $locatie = "http://www.verhaartje.com/~theo/d_ownloads/" ;
    if ($_GET["did"] ==  1) $filename = "topstyle.exe" ;  
     if ($_GET["did"] ==  2) $filename = $locatie."fireworks.exe" ;  
     if ($_GET["did"] ==  3) $filename = $locatie."supergo.zip" ;  
     if ($_GET["did"] ==  4) $filename = $locatie."virtualpc.rar" ;  
     if ($_GET["did"] ==  5) $filename = $locatie."adware.exe" ;  
     if ($_GET["did"] ==  6) $filename = $locatie."winrar.zip" ;  
     if ($_GET["did"] ==  7) $filename = $locatie."clonecd5.zip" ;  
     if ($_GET["did"] ==  8) $filename = $locatie."clonedvd.zip" ;  
     if ($_GET["did"] ==  9) $filename = $locatie."anydvd.zip" ;  
     if ($_GET["did"] == 10) $filename =$locatie. "bittorrent.exe" ;  
     if ($_GET["did"] == 11) $filename = $locatie."azureus.exe" ;  
     if ($_GET["did"] == 12) $filename = $locatie."kceasy09.exe" ;  

              
    //
    // kijk wat voor bestand het is
    //

    if     (substr($filename, -3) == "zip") $mime = "zip" ;  
    elseif (substr($filename, -3) == "exe") $mime = "octet-stream" ;  
    elseif (substr($filename, -3) == "pdf") $mime = "pdf" ;  
    elseif (substr($filename, -3) == "doc") $mime = "msword" ;  
    elseif (substr($filename, -3) == "rar") $mime = "rar" ;  

    
    // verstuur de headers om het bestand te downloaden
    $filesize = filesize($filename) ;  
    header("Content-Type: application/$mime") ;  
    header("Content-Length: ".$filesize."") ;  
    header("Content-Disposition: attachment; filename=".$filename) ;  
    $fp = fopen($filename, 'rb') ;  
    $buffer = fread($fp, $filesize) ;  
    fclose ($fp) ;  
    echo $buffer ;  
    exit() ;  
    
}
else{  
    echo "<h1>Antileech activated</h1>" ;  
      
    echo "Je komt niet van URL adres: <b>".$antiurl."</b>" ;  
}
  
//
//end antileech
//


?>


Maar dan werkt die nog niet ;(


19 jaar geleden
 
0 +1 -0 -1
Hallo, geeft er nog iemand andwoord?????

Tnx.
Erick Schluter
Erick Schluter
19 jaar geleden
 
0 +1 -0 -1
Ben ook benieuwd...


19 jaar geleden
 
0 +1 -0 -1
theovds:

$filename moet in jou geval alleen "topstyle.exe" of "fireworks.exe" bevatten zodat de losse filename in de headers kan worden opgenomen zonder $locatie

fopen moet dan $locatie.$filename worden. Omdat je van een HTTP stream af wilt lezen en gebruik maakt van DNS hoop ik dat je server toegang heeft tot een DNS tabel om het juiste IP nummer op te vragen van 'www.verhaartje.com'

filesize van een http stream opvragen kan geloof ik niet, dus ik zou $filesize = filesize($filename) ; en header("Content-Length: ".$filesize."") ; in jou geval weglaten en dan maar hopen dat de webserver de juiste content-length toevoegt (met apache zou het wel goed moeten gaan)


18 jaar geleden
 
0 +1 -0 -1
Dit is toch ook gewoon simpel te maken met een .htaccess bestand. Je kan hiermee heel makkelijk deeplinking voorkomen van alle extenties die je opgeeft


18 jaar geleden
 
0 +1 -0 -1
Dit is toch ook gewoon simpel te maken met een .htaccess bestand. Je kan hiermee heel makkelijk deeplinking voorkomen van alle extenties die je opgeeft


18 jaar geleden
 
0 +1 -0 -1
@ Laurens

hoe maak je dan zn .htacces bestand? en welke code moet erin komen??
Pds
pds
18 jaar geleden
 
0 +1 -0 -1
zet dit er wel in he:P

if ($_GET["$antiurl"]) { echo "Anti-leach hacking is disabled..."; }
elseif($_GET["HTTP_REFERER"]) { echo "Did you want to hack me?"; }
Pds
pds
18 jaar geleden
 
0 +1 -0 -1
om .htacces te maken --->>>>

Start ---> Uitvoeren ---> command of cmd ---> echo HTACCES>C:\.htacces

simpel als wat nu bewerke met kladblok en uploade;)
Jeffrey
jeffrey
18 jaar geleden
 
0 +1 -0 -1
leuk scriptje :D
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


18 jaar geleden
 
0 +1 -0 -1
De manier die Bas gebruikt is niet perfect als ik deze note op php.net bekijk:
Quote:
HTTP_REFERER Replacement

Being that REFERER is not a reliable resource to determine if a user is visiting a link from your domain, try using apache_request_headers() instead (formerly getallheaders). I found this to work very well with both IE and Netscape/FireFox when determining if a user is downloading a file from outside of my domain.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$host
=apache_request_headers();
if(!eregi('domain.com',$host['Referer'])){
   //[...code to download file here...]
}else{
   //[...code to download alternate file here...]
   }
?>

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. antileech-voor-downloads

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.