phpbar.de logo

Mailinglisten-Archive

[php] Downloads schuetzen

[php] Downloads schuetzen

Enrico Weigelt php_(at)_phpcenter.de
Mon, 29 Jul 2002 14:32:51 +0200


On Mon, Jul 29, 2002 at 02:11:09PM +0200, Patrik Breitenmoser wrote:
> Hallo zusammen,
> 
> Folgendes Problem:
> 
> Es gibt einen Internen-Bereich auf der Webseite welcher durch Login und
> Sessions geschützt ist.
> Nun kann der kann man über eine Adminoberfläche Dateien auf den Server laden
> welche nur in dem Internen Bereich downgeloadet werden dürfen. Wie kann ich
> nun diese Files schützten?

am besten du baust ein download-script, das erstmal die session checkt.
per url-param uebergibst du einfach den filenamen.
das file wird geoeffnet, entsprechende header ( content-type ) gesendet
und dann die daten direkt rausgeschoben.

koennte so aussehen:

<?php

require_once ( "common.inc" );

(check_session() || (die("not allowed\n"));
(($fn = $HTTP_GET_VARS['filename']) || (die("missing filename\n"));

$fn = str_replace ( '../', '/' ); 
$fn = str_replace ( '//', '/' );

(($fp = fopen ( "$DOWNLOAD_ROOT/$fn" ) || (die("could not open file\n"));

(($content_type=mimetype_by_filename($fn)) || (die("coult not detect mimetype\n"));

Header ( "Content-Type: $content_type" );
Header ( "Content-Disposition: inline; name=\"$fn\";");

while (!feof($fp))	print fgets($fp, 1024);


... so in der art solltes funktionieren.
(in der hoffnung, dass print() auch binaries verkraftet ...)

~-n
--
 Enrico Weigelt    ==   metux ITS 
 Webhosting ab 5 EUR/Monat.          SMS-Versand ab 5 cent.

 phone:     +49 36207 519931         www:       http://www.metux.de/     
 fax:       +49 36207 519932         email:     contact_(at)_metux.de
 cellphone: +49 174 7066481	     smsgate:   sms.weigelt_(at)_metux.de


php::bar PHP Wiki   -   Listenarchive