PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Datei download aus htaccess geschützten Ordner (https://www.php-resource.de/forum/php-developer-forum/78753-datei-download-aus-htaccess-geschuetzten-ordner.html)

webINspirit 02-12-2006 20:36

Datei download aus htaccess geschützten Ordner
 
Hi,

ich will über ein php script Dateien zum Download anbieten die in
einen .htaccess geschützen Ordner liegen.

Das script wird über session geschützt die in der auth.php liegt.

Hier das script was mir kopfzerbrechen versursacht:
PHP-Code:

<?
//********** Zugriffsschutz *****************************************
include("auth.php");
//********** Zugriffsschutz *****************************************

$basedir $_SERVER['DOCUMENT_ROOT'].'/Intern/download';

$file$basedir.'/'.$_GET[datei];

header("Content-Type: application/pdf");

$download basename($file);
header("Content-Disposition: attachment; filename=\"$download\"");

// Datei ausgeben.
readfile($file);
?>

Der aufruf erfolgt über: download.php?datei=Dokument.pdf

Ich kann keine funktionierende Datei downloaden. Ich bekomme eine Datei
mit dem richtigen Namen aber nur 2-200KB groß (Original 2,5MB).

Wenn ich die Datei direkt downloade funktioniert alles wunderbar nach der Passwort abfrage.

wahsaga 02-12-2006 21:09

Re: Datei download aus htaccess geschützten Ordner
 
Und $filename enthält bitte was zu dem Zeitpunkt, wo du es als Parameter für readfile verwendest?


Und dem GET-Parameter vertraust du auch blind? Bravo, sehr universelles Script, damit kann man dann ja praktisch alles runterladen - auch deine PHP-Scripte, in denen z.B. Zugangsdaten abgelegt sein könnten ...

PHP-Desaster 02-12-2006 21:30

Re: Re: Datei download aus htaccess geschützten Ordner
 
Zitat:

Original geschrieben von wahsaga
Und $filename enthält bitte was zu dem Zeitpunkt, wo du es als Parameter für readfile verwendest?


Und dem GET-Parameter vertraust du auch blind? Bravo, sehr universelles Script, damit kann man dann ja praktisch alles runterladen - auch deine PHP-Scripte, in denen z.B. Zugangsdaten abgelegt sein könnten ...

und du umgehst die htaccess auch noch, cool! Gib uns da später mal nen link drauf!

webINspirit 02-12-2006 21:42

So der fehler ist korregiert.

Es ist beabsichtigt damit den htaccess Schutz zu umgehen weil er nur den direkten Download verhindern soll.

In dem Ordner download der über $basedir festgelegt ist sind nur pdf
dateien die alle user die angemeldet sind auch downloaden dürfen.
Es sind keine php oder sonstige dateien enthalten.

Ich möchte es erst mal laufen haben bevor ich noch mehr sicherheit mit einbringen möchte und kann.

3DMax 02-12-2006 21:52

Zitat:

Original geschrieben von webINspirit
Es ist beabsichtigt damit den htaccess Schutz zu umgehen weil er nur den direkten Download verhindern soll.
das ist ja soweit ok, nur kann man dir per get auch relative fileangaben (../../geheime_datei) unterjubeln und so dein $basedir = $_SERVER['DOCUMENT_ROOT'].'/Intern/download'; umgehen.

webINspirit 02-12-2006 22:56

Danke für den Tip,
werde es dann noch mit einarbeiten.

Ich kann leider nur keine Datei downloaden.
Kann es an einer Server einstellung liegen??

3DMax 02-12-2006 23:09

Zitat:

Original geschrieben von webINspirit
Ich kann leider nur keine Datei downloaden.
Kann es an einer Server einstellung liegen??
du solltest auch den passenden header senden:
header("Content-Type: application/octet-stream");

webINspirit 03-12-2006 01:16

Werde das script mal auf einem anderen Server ausrobieren denn
ich kann einfach keinen Fehler finden, aber ich kann einfach keine
einwandfrei Datei downloaden.

webINspirit 03-12-2006 09:12

Hi,

habe es jetzt noch mal auf einem anderen Server ausprobiert und dort läuft es auch nicht.
Dann bin ich hingegeangen und habe eine andere pdf Datei genommen die nur 30kb groß ist und dann hat alles funktioniert.

Gibt es eine größenbeschränkung für readfile() denn ich wollte eine 2,5MB
große Datei downloaden lassen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:43 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG