Datei download aus htaccess geschützten Ordner

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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.
    Zuletzt geändert von webINspirit; 02.12.2006, 21:39.

  • #2
    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 ...
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Re: Re: Datei download aus htaccess geschützten Ordner

      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!

      Kommentar


      • #4
        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.

        Kommentar


        • #5
          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.

          Kommentar


          • #6
            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??

            Kommentar


            • #7
              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");

              Kommentar


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

                Kommentar


                • #9
                  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.

                  Kommentar

                  Lädt...
                  X