PHP Bild von URL herunterladen

ClocxHD

Lt. Junior Grade
Registriert
Aug. 2014
Beiträge
376
Hallo,

ich möchte mit folgendem PHP-Script ein Bild von einer URL herunterladen:
PHP:
<?php
	$name = $_GET["name"];
	$price_orig = $_GET["price"];
	$anzahl = $_GET["anzahl"];
	$vorhanden = $_GET["vorhanden"];
	$bild = $_GET["bild"];
	$link = $_GET["link"];
	$klein = $_GET["klein"];
	$kategorie = $_GET["kategorie"];

	//Bild
	$bildname = str_replace(" ", "_", $name);

	if (preg_match('/png/',$bild)) {
		$endung = "png";
	} elseif (preg_match('/jpg/',$bild)) {
		$endung = "jpg";
	} elseif (preg_match('/jpeg/',$bild)) {
		$endung = "jpeg";
	} elseif (preg_match('/gif/',$bild)) {
		$endung = "gif";
	}

$img = "/var/www/html/Startseite/data/" . $bildname . "." . $endung;
	$savefile = fopen($img, "w");
	fwrite($savefile, file_get_contents($bild));
	fclose($savefile);
	//--Bild

	//Hier kommt der restliche, für diesen Thread unrelevante Code

Folgende "Fehlermeldung" steht in den Logs:
Code:
PHP Warning:  fopen(data/IN_WIN_707.jpg): failed to open stream: No such file or directory in /var/www/html/Startseite/scripts/insert-wuensche.php on line 25, referer: http://10.0.128.109/Startseite/insert-wuensche.php

OS: Ubuntu Server 15.04,
Apache 2.4.10,
PHP 5.6.4

LG,
ClocxHD
 
Zuletzt bearbeitet:
Ist mir auch schon aufgefallen, die Frage ist, warum.
 
Uff. Wo soll man anfangen :D Folgende Überlegung:
Die GET-Parameter kann der Nutzer kontrollieren, d.h. beliebigen Inhalt reinschreiben. Stell Dir vor, ich sende Dir so einen Request:
PHP:
	$name = '../../../../../etc/shadow';
$bild = 'keine_endung.psd';
Was wäre das Resultat? Welche Datei würdest Du schreiben? Mit welcher Dateiendung?
 
Der schreibt den Pfad aber richtig in die Datenbank:
ss+(2015-06-21+at+03.42.17).png
 
Zurück
Oben