hi!
habe mir folgenden ansatz überlegt um SQL injections abzufangen.
im programm ist es ggf. nötig mehrere SQL-statements hintereinander abzusetzen (INSERT, UPDATE, ...). jedes statement besteht aus einem query und den zugehörigen parametern:
in einer klasse mit dem namen db gibt es eine funktion foo($command), die jeden übergebenen befehl sukzessive abarbeitet.
zuerst sollen sämtliche parameter mit addslashes behandelt werden, wenn magic_quotes nicht aktiv ist und anschließend sollen die korrekt escapten parameter ins query eingebunden werden und das query abgesetzt werden:
mein problem besteht nun darin, wie ich es schaffe, die einzelnen parameter des $cmd["params"]-arrays in den string $cmd["query"] einzubinden, nachdem addslashes erfolgt ist.
vorschläge? gibts evt. bereits fertige lösungen mit diesem ansatz?
bin für jeden hinweis dankbar.
habe mir folgenden ansatz überlegt um SQL injections abzufangen.
im programm ist es ggf. nötig mehrere SQL-statements hintereinander abzusetzen (INSERT, UPDATE, ...). jedes statement besteht aus einem query und den zugehörigen parametern:
PHP Code:
$query1 = "1";
$query2 = "2";
$query3 = "3";
$params1 = Array("a" => "a'x'a", "b" => "s\x/s", "c" => 'd"q"');
$params2 = Array("a", "s", "d", "f");
$params3 = Array("a", "s", "d", "f");
$cmd[] = Array("params" => $params1, "query" => $query1);
$cmd[] = Array("params" => $params2, "query" => $query2);
$cmd[] = Array("params" => $params3, "query" => $query3);
zuerst sollen sämtliche parameter mit addslashes behandelt werden, wenn magic_quotes nicht aktiv ist und anschließend sollen die korrekt escapten parameter ins query eingebunden werden und das query abgesetzt werden:
PHP Code:
class db
{
function foo($command)
{
foreach ($command as $cmd) {
foreach ($cmd["params"] as $param) {
echo addslashes($param) . " - ";
}
echo "<br>";
echo $cmd["query"] . "<br><br>";
}
}
}
vorschläge? gibts evt. bereits fertige lösungen mit diesem ansatz?
bin für jeden hinweis dankbar.
EDIT:
unter "parameter" versteh ich übrigens, variablen, wie z.b. $id in folgendem query:
PHP Code:$sql = "SELECT `name` FROM `test` WHERE `id` = " . $id;
Comment