Mailinglisten-Archive |
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