pdf öffnen lassen mit readfile

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

  • pdf öffnen lassen mit readfile

    Hallo,
    ich biete einen Download aus einem geschützen bereich über readfile an.
    Mit Firefox erhalte ich das Angebot, die Datei zu öffnen. Mit chrome wird vor der Datei gewarnt.

    Kann ich es bewerkstelligen, dass die Datei bei Klick auf den Link gleich geöffnet wird, so wie das bei normalen Downloads der Fall ist?

    Hier der Code

    PHP-Code:
    $finfo = new finfo(FILEINFO_MIME);

       
    $mime_type $finfo->file('../'.$_GET['destination'].$_GET['file']);
                     
       
    header("Content-type: ".$mime_type."");
       
    header("Content-Disposition: attachment; filename=\"".$_GET['file']."\"");

       
    readfile('../'.$_GET['destination'].$_GET['file']); 

  • #2
    Dir ist aber schon bewusst, dass das eine riesige Sicherheitslücke ist, wenn du GET-Parameter in Dateipfade einfügst?

    Davon abgesehen zu deiner Frage:

    an inline content-disposition, which means that it should be automatically displayed when the message is displayed, or

    an attachment content-disposition, in which case it is not displayed automatically and requires some form of action from the user to open it.
    Siehe: MIME - Wikipedia, the free encyclopedia

    Ist zwar eine Beschreibung für den Aufbau einer Mail, bedeutet aber bei HTTP das gleiche.

    Kommentar


    • #3
      Vielen Dank

      Ich habe jetzt attachment rausgenommen und es funktioniert sehr gut.
      Für den Hinweis auf die Sicherheitslücke danke ich sehr. Tatsächlich kann man damit ja alle Dateien herunterladen.

      Kommentar


      • #4
        Sicherheitslück

        Da ich für den Dateiaufruf GET-Parameter brauche, habe ich mir überlegt, ob das vielleicht so sicherer ist.
        PHP-Code:

        $_SESSION
        [$file] = $file;                                                  
        $_SESSION[$destination] = $destination;

        $finfo = new finfo(FILEINFO_MIME);

           
        $mime_type $finfo->file('../'.$_SESSION[$_GET['destination']].$_SESSION[$_GET['file']]);
                         
           
        header("Content-type: ".$mime_type."");
           
        header("Content-Disposition: ; filename=\"".$_SESSION[$_GET['file']]."\"");

           
        readfile('../'.$_SESSION[$_GET['destination']].$_SESSION[$_GET['file']]); 
        Der Dateiaufruf über readfile ist ja da damit man Dateien, die über htaccess geschützt werden abrufen kann, wenn diese freigeben sind. Vielleicht weiß ja jemand eine andere Lösung.

        Kommentar

        Lädt...
        X