Download Schutz!

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
Cooper2201
Mitglied
Beiträge: 20
Registriert: 23.08.2002 15:53
Wohnort: Rodgau

Download Schutz!

Beitrag von Cooper2201 »

Hi,

folgende Frage:

Ich habe direkt auf meinem Server auf oberster Ebene das Board installiert und möchte eine Verzeichnisschutz in Php erstellen, so dass nur registrierte Benutzer auf die Downloads zugreifen können. Im Moment kann jeder, der den direkten Link kennt per Browser downloaden, ohne das geprüft wird, ob der Benutzer eingeloggt ist oder nicht.


Hat jemand ne Idee?

Gruß

Cooper
Nichts ist so wie es scheint
Benutzeravatar
JumpinJack
Mitglied
Beiträge: 953
Registriert: 27.05.2002 10:37
Wohnort: Ariendorf
Kontaktdaten:

Beitrag von JumpinJack »

Naja wie willst du denn die Donloads bereit stellen? MIt dem DL-Mod von Hotchi?
Wenn ja dann gib die Downloads nur mit Trafficbegrenzung frei.
Liebe Grüße
JumpinJack
Benutzeravatar
Cooper2201
Mitglied
Beiträge: 20
Registriert: 23.08.2002 15:53
Wohnort: Rodgau

Download Schutz!

Beitrag von Cooper2201 »

Hi,

also die Downloadlinks sind momentan direkt hinter im einem Topic eingbunden, d.h. hinter einem Text verbirgt sich der Link, nur wenn sich den Link anzeigen lässt und sich die Adresse bookmarkt, dann kann jeder der diesen Link hat auf die Datei zugreifen, auch wenn ein Benutzer nicht eingeloggt ist.

Ich möchte aber, das man nur den Link aufrufen kann wenn man eingeloggt ist und ansonsten eine Fehlermeldung erscheint.

Gruß

Cooper
Nichts ist so wie es scheint
Gast200921

Beitrag von Gast200921 »

Hallo Cooper,

eine wirklich 'wasserdichte' Lösung wirst Du est dann haben, wenn Du die Downloads beispielsweise per PHP-Script verschickst, also keine direkten Links mehr zulässt. Download- oder Attachment-Mods können hier Abhilfe schaffen.

Wenn Du aber eine schnelle Lösung brauchst, dann kannst Du das Verzeichnis, in welchem die fraglichen Dateien liegen, per .htacceess derart schützen, daß Downloads nur noch möglich sind, wenn der Link von Deiner Seite kommt. Diese Variante hat allerdings mindestens einen großen Haken: Manche Addons für Browser [oder auch Firewalls] blockieren die Referrer-Angabe. Solche User könnten bei Dir dann gar nichts mehr herunterladen.

Die Variante mit der .htaccess-Datei kann also nicht mehr als eine Notlösung sein, dafür ist sie aber auch in weniger 50 Sekunden installiert. Für nähere Infos würde ich Dir raten, mal mit Google nach '.htaccess' und 'referrer' zu suchen.
Benutzeravatar
Cooper2201
Mitglied
Beiträge: 20
Registriert: 23.08.2002 15:53
Wohnort: Rodgau

Download Schutz

Beitrag von Cooper2201 »

Hi,

hatte schon was in php geschrieben, funktioniert aber nur wenn die Dateien direkt im demselben Verzeichnis liegen wie die index.php.

Sobald ich auf ein anderes Verzeichnis verweise funktioniert die ganze Geschichte nicht mehr.

htaccess wollte ich eigentlich vermeiden.

Anbei mal die Source:

<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
//
// Start session management
//
$userdata = session_pagestart($user_ip,0);
init_userprefs($userdata);
//
// End session management
//

//
// Start auth check
//
$is_auth = array();
$is_auth = auth(AUTH_ALL, $forum_id, $userdata, $forum_row);

//if ( !$is_auth['auth_read'] || !$is_auth['auth_view'] )
//or just as long as they are loged in
if(!$userdata['session_logged_in'] )
{
//
// The user is not authed ...
//
// for different languages these values can be set or..
//$message = sprintf($lang['Sorry_auth_read'], $is_auth['auth_read_type']);
$message = "You must be logged in to download files";
message_die(GENERAL_MESSAGE, $message);
}
//
// End of auth check
//
else
{


$f_file = "/stuff/". $_GET['file'];

if(file_exists($f_file)){

$filesize = filesize($f_file);

if(strpos($_SERVER['HTTP_USER_AGENT'],'MSIE')){
// for IE
header("Cache-Control: public");
}

header("Content-Type:application/octet-stream");

header("Content-disposition:attachment;filename=". $_GET['file']);

header("Content-Length: " . $filesize);

readfile($f_file);

header("Location: " . add_sid("index.php"));
}

else
{
$message = "File does not exist";
message_die(GENERAL_MESSAGE,$message);
}
}

?>
Nichts ist so wie es scheint
Dennis63
Ehemaliges Teammitglied
Beiträge: 2597
Registriert: 02.07.2003 18:46

Beitrag von Dennis63 »

Hi

Auf meiner PAge (boegesoft.de) ist ein PHP-Download-Script. Du kannst an das Script ganz einfach den Pfad + Dateinamen schicken und es lädt Dir das File runter. Die Files können dann auch in htaccess geschützen Bereichen liegen, das macht nix.
Dann braucht Du noch ein Script welches Dir prüft, ob Du eingeloggt bist und welches File Du saugen darfst:

ganz einfach (Nur so getippt, nicht auf Fehler getestet oder überhaupt mal ausprobiert:

Code: Alles auswählen

<?
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//
if ( $userdata['session_logged_in'] )
  {
  // allow download
  $id = ( !empty($HTTP_POST_VARS['id']) ) ? $HTTP_POST_VARS['id'] : $HTTP_GET_VARS['id']; 
  if ($id = "1")  $yourfile = "file1.exe";
  if ($id = "2")  $yourfile = "file2.exe";
  if ($id = "3")  $yourfile = "file3.exe";

  $attach_filename 	= $yourfile;
  $attach_path 	= $ausg_dl_path;
  include('includes/download_file.php');
} 

  }
?>
Ok nochmal: obiges nur als "Idee" und ohne Garantie, da es "nur so getippt" ist!!

Grüße
Dennis
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“