PHP controleren

Status
Niet open voor verdere reacties.

xBart

Gebruiker
Lid geworden
4 jan 2013
Berichten
34
Goedenavond!

Zou iemand voor mij dit stukje PHP willen controleren? Zoja zitten er fouten in? zou je ze dan willen verbeteren?
Code:
PHP:
<?php
$filename = $_GET['img'];

if (file_exists($filename)) {
    if(isset($_GET['img']) && trim($_GET['img']) != ""){
	// Controleer nog wel op lekken zoals ../index.php enzo
	// Do what you like!
	$img = $_GET['img'];
	$im = imagecreatefrompng($img);

	header('Content-Type: image/png');

	imagepng($im);
	imagedestroy($im);
	}
} else {
    echo "The file $filename does not exist";
}
?>

Met vriendelijke groet, Bart
 
Ik wil niet zeggen dat er echt fouten in zitten, wel onlogische dingen.

in regel 1 geef je $filename een waarde zonder te controleren of de GET-waarde bestaat.

Vervolgens ga je in regel 5 deze controle wel uitvoeren terwijl je $filename dan al (ongecontroleerd) gebruikt hebt.

vervolgens ga je $img een waarde geven uit dezelfde GET-variabele, ik denk dat het genoeg is om hier één keer een variabele aan te plakken.

Ik zou regel 2, 3 en 4 verwijderen en de eerste accolade van regel 16, voor de werking maakt dit niet uit.
 
Als je de tips van gast0158 toepast krijg je dus een netter script als volgt:


PHP:
<?php
if(isset($_GET['img']) && !empty($_GET['img']){
	$im = imagecreatefrompng($_GET['img']);
	header('Content-Type: image/png');
    imagepng($im);
    imagedestroy($im);
}
else {
	echo "The file $filename does not exist";
}
?>
 
u houd het script als dit
PHP:
<?php
$filename = $_GET['img'];
 
if (file_exists($filename)) {//hier moet je controleren of het effectief een img is dat men wil bekijken 
//stel dat men je sql.php of andere file(code) trachten te stelen
    if(isset($_GET['img']) && trim($_GET['img']) != ""){
    // Controleer nog wel op lekken zoals ../index.php enzo
    // Do what you like!
    $img = $_GET['img'];
    $im = imagecreatefrompng($img);
 
    header('Content-Type: image/png');
 
    imagepng($im);
    imagedestroy($im);
    }
} else {
    echo "The file $filename does not exist";
}
?>
 
u houd het script als dit
PHP:
<?php
$filename = $_GET['img'];
 
if (file_exists($filename)) {//hier moet je controleren of het effectief een img is dat men wil bekijken 
//stel dat men je sql.php of andere file(code) trachten te stelen
    if(isset($_GET['img']) && trim($_GET['img']) != ""){
    // Controleer nog wel op lekken zoals ../index.php enzo
    // Do what you like!
    $img = $_GET['img'];
    $im = imagecreatefrompng($img);
 
    header('Content-Type: image/png');
 
    imagepng($im);
    imagedestroy($im);
    }
} else {
    echo "The file $filename does not exist";
}
?>

Waar slaat dit op? U pakt de code van de eerste thread (die nog nagekeken dient te worden en voegt 1 comment toe.
De comment slaat ook nergens op want op de 7de regel staat al
// Controleer nog wel op lekken zoals ../index.php enzo

Beschrijf het advies wat u wilt geven (al is er geen advies in dit geval) wat duidelijker. zeggen "U houd het script als dit" is niet erg vriendelijk.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan