php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack (1) Themen-Optionen Thema bewerten
  1 links from elsewhere to this Post. Click to view. #1 (permalink)  
Alt 16-11-2013, 11:37
sanktusm
 Registrierter Benutzer
Links : Onlinestatus : sanktusm ist offline
Registriert seit: Aug 2005
Beiträge: 651
sanktusm zeigte ein beschämendes Verhalten in der Vergangenheit
Standard 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']); 
Mit Zitat antworten
  #2 (permalink)  
Alt 16-11-2013, 11:40
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.648
h3ll befindet sich auf einem aufstrebenden Ast
Standard

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:

Zitat:
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.
Mit Zitat antworten
  #3 (permalink)  
Alt 16-11-2013, 12:08
sanktusm
 Registrierter Benutzer
Links : Onlinestatus : sanktusm ist offline
Registriert seit: Aug 2005
Beiträge: 651
sanktusm zeigte ein beschämendes Verhalten in der Vergangenheit
Standard 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.
Mit Zitat antworten
  #4 (permalink)  
Alt 16-11-2013, 12:31
sanktusm
 Registrierter Benutzer
Links : Onlinestatus : sanktusm ist offline
Registriert seit: Aug 2005
Beiträge: 651
sanktusm zeigte ein beschämendes Verhalten in der Vergangenheit
Standard 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.
Mit Zitat antworten
Antwort

Lesezeichen


LinkBacks (?)
LinkBack to this Thread: https://www.php-resource.de/forum/php-developer-forum/104349-pdf-oeffnen-lassen-mit-readfile.html
Erstellt von For Type Datum
php pdf öffnen lassen mit readfile This thread Refback 16-11-2013 12:26

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
URL durch PHP öffnen lassen Tastatur PHP Developer Forum 1 31-12-2012 19:44
Datei aus externen Server öffnen - Alternative zu readfile sanktusm PHP Developer Forum 3 27-11-2008 12:01
PDF Dateien lassen sich nicht (mehr) öffnen! messwell PHP Developer Forum 10 25-09-2007 10:08
pdf direkt öffnen sepp PHP Developer Forum 12 11-09-2007 15:26
andere seite im hintergrund öffnen lassen? schindelholz HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 1 02-11-2001 07:41

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Plates native PHP template system

Plates ist ein natives PHP-Vorlagensystem, das schnell, einfach zu verwenden und einfach zu erweitern ist.

24.05.2019 Berni | Kategorie: PHP/ Framework
Maqetta Open Source  HTML5-Editor ansehen Maqetta Open Source HTML5-Editor

Einen WYSIWYG-Editor zur visuellen Erstellung von Userinterfaces in HTML5 (Drag-and-Drop)

13.05.2019 Berni | Kategorie: HTML5/ EDITOR
NodeBB

NodeBB ist eine Foren-Software auf NodeJS-Basis

13.05.2019 Berni | Kategorie: PHP/ Forum PHP Software
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:18 Uhr.