EKKi: Update

Beitrag lesen

Mahlzeit naja,

Was genau sind die Sicherheitslücken im bisherigen INSERT-Statement? Damit ich meinen Kollegen mal dezent drauf hinweisen kann...

Du (bzw. Dein Kollege) übernimmst hier

foreach ($_POST as $varname => $varvalue) {  
$varnames[]=$varname; $varvalues[]=$varvalue;  
}

einfach ungeprüft *ALLE* von außen per POST an das Skript übermittelte Daten.

Etwas weiter unten werden diese Daten ungeprüft und ohne Berücksichtigung des stattfindenden Kontextwechsels in einer SQL-Abfrage verwurstet:

$query = "INSERT INTO tabelle    (";  
foreach ($varnames as $varname) {  
     $query .= $varname.", ";  
}  
$query = substr($query,0,strlen($query)-2);  
$query .=") VALUES (";  
foreach ($varnames as $varname) {  
     $query .= "'".$_POST[$varname]."', ";  
}

Was passiert z.B. Deiner Meinung nach, wenn jemand als Wert einen String übergibt, der ein ' enthält? Und das wäre noch Dein geringstes Problem ...

MfG,
EKKi

--
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|