[PHP] Header content-disposition

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Skibby
  • Registratie: April 2000
  • Laatst online: 19-04 12:31
Als ik met:

---------------------------------

header("Content-type: application/octet-stream");

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

readfile($filename);

----------------------------------

Een word file .doc laat downloaden in netscape 7, dan gaat dat goed, maar dan staat het bestand als .doc.php op mijn schijf...

iemand een idee waardoor dit komt?

Acties:
  • 0 Henk 'm!

  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Ik meen in een ander topic gelezen te hebben dat dit een browser-specefieke fout is...

Acties:
  • 0 Henk 'm!

  • Skibby
  • Registratie: April 2000
  • Laatst online: 19-04 12:31
ah...
er bestaat een oplossing, zet een / na je php file
dus zoiets:

getfile.php/?file=$filename

Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

PHP:
1
2
3
4
5
6
7
8
9
10
11
$filename = $_SERVER['QUERY_STRING'];

// Internet explorer zuigt nogal met het geforceerd downloaden van een bestand.
$contentType='application/octet-stream';
header("Pragma: "); // IE fix.
header("Cache-Control: "); // IE fix
header("Content-type: $contentType");
header("Content-Disposition: attachment; filename=\"".$filename."\""); // IE fix
header("Content-length:".(string)(filesize('c:/phpdev/www/wallpapers/'.$filename))); // IE fix.
$filepump=fopen($filename, "rb"); 
fpassthru($filepump);


Een stukje uit de download.php van m'n thumbnail scriptje

Aanroepen als: Download.php?filename.ext

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

Verwijderd

Skibby schreef op 13 April 2003 @ 21:54:
ah...
er bestaat een oplossing, zet een / na je php file
dus zoiets:

getfile.php/?file=$filename
jap dit klopt :)

overigens, lekker veilig(not).

PHP:
1
readfile($filename);

in b.v. http://www.domain.nl staat dan de bovenstaande file.
ook in de http://www.domain.nl staat een config.php met inhoud als b.v.
PHP:
1
2
3
4
$db_host = "localhost";
$db_user = "blaat";
$db_pass = "1234";
$db_dbname = "eenschaapindewei";

normaal is het iets als download.php/?filename=downloads/file.exe maar nou maakt een hacker/scriptkiddy er van download.php/?filename=config.php en daar gaat je config, passwords weg, en waarschijnlijk je site dood.

Acties:
  • 0 Henk 'm!

Verwijderd

hoe kan je dat dan wel beveiligen zodat hij nooit de config file kan downloaden?

Acties:
  • 0 Henk 'm!

  • Helmet
  • Registratie: Januari 2002
  • Laatst online: 21-08 15:00
PHP:
1
basedir($filename) ;


Dit zorgt ervoor dat alleen de bestandsnaam in de string gezet wordt en daardoor kun je nooit ../bestand.php of directory/bestand.php aanroepen, nadeel is wel dat een directory structuur maken moeilijker is

Icons are overrated


Acties:
  • 0 Henk 'm!

Verwijderd

Alle bestanden die wel gedownload mogen worden in een database zetten, en die string dan controleren met de database...is een mogelijkeheid :)
Pagina: 1