Schutz vor direktem Download einer Datei?

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

  • Schutz vor direktem Download einer Datei?

    Hallo!
    Gibt es eine Möglichkeit, eine Datei vor direktem Datei-Download zu schützen?

    Beispiel:
    Download-Adresse ist
    http://DeineHomepage.de/Download.php?id=64355
    anstatt:
    http://DeineHomepage.de/files/Setup.exe

    Also das auch im Download-Manager nicht der richtige Dateipfad angezeigt wird?

    Vllt. so?:

    download.php

    PHP-Code:
    <?php
      
    If($_GET['id']==64355)
      {
        include(
    "./files/Setup.exe");
      }
    ?>
    oder würde das nicht gehen?

    ___
    Gruss,
    maxinet
    Zuletzt geändert von maxinet; 20.10.2006, 22:48.
    [DELL INSPIRON 9400] - 2,16 GHz Intel Centrino Duo Mobiltechnologie - 2 GB Arbeitsspeicher - Phillips DVD+-RW Brenner - 17" LCD TrueLife - Windows XP Professional

  • #2
    Du kannst eine Datei mit readfile einlesen und dann ausgeben - musst allerdings noch die entsprechenden header senden.... Such einfach mal nach "php download readfile"
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      hmm..
      Ok. Ich schau mal..

      Danke
      Maxi
      [DELL INSPIRON 9400] - 2,16 GHz Intel Centrino Duo Mobiltechnologie - 2 GB Arbeitsspeicher - Phillips DVD+-RW Brenner - 17" LCD TrueLife - Windows XP Professional

      Kommentar


      • #4
        Moin,
        kenn mich zwar damit net aus, würde aber vorschlagen alle Dateien in nen Ordner packen und ne .htaccess - Datei erstellen mit ""DENY FROM ALL" etc. und/oder den Dateien andere Namen geben á la 2tju432ret47u3re4u3244uut5.exe.

        Kommentar


        • #5
          Ja, ich möchte einen Mirror betreiben.
          Die Dateien, die ich hoste sind im durchschnitt 800MB groß.
          Damit der Server nicht überlastet wird, gibt es jeden Tag nur 20 Downloads. Damit ich nach den 20 Downloads komplett sperren kann, darf keiner die "richtigen Dateinamen" wissen, sonst wird die sperre ja umgangen.. (Ich habe ja auch kein unlimited Traffic)

          Gruss,
          maxi
          [DELL INSPIRON 9400] - 2,16 GHz Intel Centrino Duo Mobiltechnologie - 2 GB Arbeitsspeicher - Phillips DVD+-RW Brenner - 17" LCD TrueLife - Windows XP Professional

          Kommentar


          • #6
            Ich hab ein Problem:
            Er läd immer nur die ersten 2 MB einer Datei herunter.
            Woran liegt das?
            Hier der Code:
            PHP-Code:
            $url="otrkey/files/otr/";
            header("Content-type: application/OTRKEY-file");
            header("Accept-Ranges: bytes");
            header("Content-Transfer-Encoding: Binary");
            header("Content-Disposition: attachment; filename=".$_GET['file']);
            header("Content-length: " filesize($url.$_GET['file']));
            $fp=fopen($url."/".$_GET['file'],"r");
            while(!
            fEof($fp))
            {
              echo 
            fgets($fp,1024);

            Nach 2 MB meint er, dass die Datei fertig heruntergeladen wäre.
            Die datei ist aber 200MB groß O.o

            Gruss,
            maxi
            [DELL INSPIRON 9400] - 2,16 GHz Intel Centrino Duo Mobiltechnologie - 2 GB Arbeitsspeicher - Phillips DVD+-RW Brenner - 17" LCD TrueLife - Windows XP Professional

            Kommentar


            • #7
              zeig mal, was für ein http header an den benutzer _tatsächlich_ geschickt wird.

              Kommentar


              • #8
                hmm.
                Ich habs mal so versucht:
                PHP-Code:
                $url="otrkey/files/otr/";
                header("Content-type: application/OTRKEY-file");
                header("Accept-Ranges: bytes");
                header("Content-Transfer-Encoding: Binary");
                header("Content-Disposition: attachment; filename=".$_GET['file']);
                header("Content-length: " filesize($url.$_GET['file']));

                readfile($url."/".$_GET['file'],"r"); 
                und da gehts? - komisch.

                Aber ich brauch jede Zeile einzelnd, also mir fgets, sonst kann ich den genau Entstandenen Traffic nicht messen!

                Jemand eine Idee? - Ich schau mal gerade auf de.php.net

                Maxi
                [DELL INSPIRON 9400] - 2,16 GHz Intel Centrino Duo Mobiltechnologie - 2 GB Arbeitsspeicher - Phillips DVD+-RW Brenner - 17" LCD TrueLife - Windows XP Professional

                Kommentar


                • #9
                  hmm..
                  Ok, ich wollte die Datei nun mal "ganz" herunterladen. Aber nach einer bestimmten Zeit hört der Download dann einfach auf.
                  Ich vermute, dass PHP das script "beendet" (timeout).

                  Gibts eine Möglichkeit das zu umgehen oder so?

                  Maxi
                  [DELL INSPIRON 9400] - 2,16 GHz Intel Centrino Duo Mobiltechnologie - 2 GB Arbeitsspeicher - Phillips DVD+-RW Brenner - 17" LCD TrueLife - Windows XP Professional

                  Kommentar


                  • #10
                    http://de3.php.net/manual/en/functio...time-limit.php

                    Kommentar


                    • #11
                      Hi,

                      auch wenn Du das Timelimit aufhebst, wirst Du bei so grossen Dateien mit fgets glaube ich keinen Spaß haben.
                      Wozu brauchst Du die Zeilen? Ich dachte Du willst die Anzahl der Downloads (20) begrenzen.

                      LG

                      Kommentar


                      • #12
                        Nee, soll mit Trafficbegrenzung laufen!
                        -> geht auf mit set_time_limit(0); nicht...

                        Gruss,
                        maxi
                        [DELL INSPIRON 9400] - 2,16 GHz Intel Centrino Duo Mobiltechnologie - 2 GB Arbeitsspeicher - Phillips DVD+-RW Brenner - 17" LCD TrueLife - Windows XP Professional

                        Kommentar


                        • #13
                          -> geht auf mit set_time_limit(0); nicht...
                          Mit dieser "Fehlerbeschreibung" kann ich leider nichts anfangen.
                          Nee, soll mit Trafficbegrenzung laufen!
                          Tja, dann vielleicht über die Dateigrößen?

                          Kommentar

                          Lädt...
                          X