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