Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Problem mit Download-Script im IE (https://www.delphipraxis.net/113487-%5Bphp%5D-problem-mit-download-script-im-ie.html)

Grolle 8. Mai 2008 15:00


[PHP] Problem mit Download-Script im IE
 
Hallo,

folgendes Script benutze ich um Usern Downloads zur Verfügung zu stellen:
Delphi-Quellcode:
$dir = '/www/htdocs/........';
  $type = 'application/zip';

  if(!empty($_GET['file']) && !preg_match('=/=', $_GET['file'])) {
    if(file_exists ($dir.$_GET['file']))    {
        makeDownload($_GET['file'], $dir, $type);
    }
  }     


function makeDownload($file, $dir, $type) {
   
    header("Content-Type: $type");

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

    readfile($dir.$file);
   
}
Im Firefox läuft das einwandfrei. Nur im IE gehts nicht (Downloaddaten konnten nicht ermittelt werden)!

Viele Grüße ...

Valle 8. Mai 2008 15:17

Re: [PHP] Problem mit Download-Script im IE
 
Ich hoffe das ist nur Beispiel-Code. :mrgreen:
Sonst möchte ich gerne mal die config.inc.php downloaden. :cyclops:

Edit:// Mhh? Ich dachte immer, man kann unter PHP den Slash problemlos durch einen Backslash ersetzen, auch unter Linux. War mir da eigentlich ziemlich sicher, aber ich habe gerade gemerkt, dass es scheinbar doch nicht geht. Ich habe statt auf "/" im Dateinamen zu prüfen immer den Dateinamen mit basename($file) extrahiert.

Mit freundlichen Grüßen,

Valle

halinchen 8. Mai 2008 15:33

Re: [PHP] Problem mit Download-Script im IE
 
So ein Funktion wie MakeDownload (fast die selbe wie deine, nur die Dateigröße und ein paar mehr Infos werden geliefert.) nutze ich auch.

Ich hab hier zwar Linux, da geht das mit dem IE testen etwas schlecht. Aber unter Windows ging es mit dem IE meines Wissens aber auch.

Vielleicht liegt es ja an der Größe, die kannst du ja mal mit übermitteln.

Du solltest aber unbedingt noch eine Liste anlegen, wo die Dateien drin stehen, welche downloadbar sind. Sonst ist es ein Sicherheitsloch.

himitsu 8. Mai 2008 15:44

Re: [PHP] Problem mit Download-Script im IE
 
wenn man ein Downloadverzeichnis hat, wo keine Sicherheitsrelevanten Dateien drin stehn, dann kann man auch ohne Dateiliste arbeiten, aber es muß sichergestellt sein, daß nur dateien aus diesem Verzeichnis abrufbar sind

Zitat:

Zitat von halinchen
Du solltest aber unbedingt noch eine Liste anlegen, wo die Dateien drin stehen, welche downloadbar sind. Sonst ist es ein Sicherheitsloch.

ich selber hab den Download auf bestimmte Verzeichnisse beschränkt und auch noch sicherheitsrelevante Dateien ausgeschlossen (Dateiliste mit Dateinamen und Dateimasken verbotener Dateien).


Code:
@header('Content-Transfer-Encoding: binary');
@header('Content-Type: application/octet-stream', true);
//@header('Content-Length: ' . $i);
@header('Content-Disposition: attachment; filename = "' . $EDatei . '"');
readfile($Verzeichnis . $EDatei);
exit;
PS: also dieses öffnet meißt auch noch das Downloadfenster und zeigt z.B. GIFs nich im Browser an

Grolle 8. Mai 2008 20:09

Re: [PHP] Problem mit Download-Script im IE
 
Hi,

der Download kommt aus einem htaccess geschützten Verzeichnis. Das sollte auch so bleiben.
Zugriff hat nur, wer angemeldet ist. Was hat der IE nur immer :gruebel:

Viele Grüße ...

Matze 8. Mai 2008 20:15

Re: [PHP] Problem mit Download-Script im IE
 
Hallo,

setze zusätzlich einmal Content-Length. Außerdem hast du Content-Type falsch gesetzt. Das muss im IE "application/octetstream" sein.

Grüße

Edit: Ich bezog mich auf himitsus Content-Type.

Grolle 8. Mai 2008 21:23

Re: [PHP] Problem mit Download-Script im IE
 
Damit klappts auch im IE: header("Pragma: public");
Greetz

himitsu 8. Mai 2008 23:38

Re: [PHP] Problem mit Download-Script im IE
 
Zitat:

Zitat von Grolle
der Download kommt aus einem htaccess geschützten Verzeichnis. Das sollte auch so bleiben.
Zugriff hat nur, wer angemeldet ist. Was hat der IE nur immer :gruebel:

.htaccess hat nur von außen eine Wirkung.

PHP läuft auf deinem Server und den interessiert eine .htaccess-Datei nicht die Bohne ... ergo hat man dank dieses Scripts auf alles Zugriff, sogar auf Verzeichnisse, welche sonst nicht von außen zugänglich sind (z.B. Backups, Logs)

mkinzler 9. Mai 2008 05:32

Re: [PHP] Problem mit Download-Script im IE
 
Zitat:

PHP läuft auf deinem Server und den interessiert eine .htaccess-Datei nicht die Bohne ... ergo hat man dank dieses Scripts auf alles Zugriff, sogar auf Verzeichnisse, welche sonst nicht von außen zugänglich sind (z.B. Backups, Logs)
Aber nur wenn man leichtsinnigerweise den save mode deaktiviert hat.

Grolle 9. Mai 2008 07:11

Re: [PHP] Problem mit Download-Script im IE
 
Zitat:

Zitat von himitsu
ergo hat man dank dieses Scripts auf alles Zugriff, sogar auf Verzeichnisse, welche sonst nicht von außen zugänglich sind (z.B. Backups, Logs)

Wieso? Unter $dir ist doch nur ein Unterverzeichnis angegeben (und zwar nicht der htdocs!!!)?!? Außerdem bekommen
den Zugriff nur eingeloggte User. Der Zugriff ist von außen nicht möglich. Das Script im ersten Beitrag ist nur ein
Ausschnitt!

Viele Grüße ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:06 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz