Bereinigen von $ _POST-Variablen [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Schützen htmlspecialchars und mysql_real_escape_string meinen PHP-Code vor Injection? 6 Antworten

Ich versuche einen Weg zu finden, um alle POST- und GET-Variablen mit einer einzigen Funktion effektiv zu bereinigen. Hier ist die Funktion selbst:

//clean the user's input
function cleanInput($value, $link = '')
{
    //if the variable is an array, recurse into it
    if(is_array($value))
    {
        //for each element in the array...
        foreach($value as $key => $val)
        {
            //...clean the content of each variable in the array
            $value[$key] = cleanInput($val);
        }

        //return clean array
        return $value;
    }
    else
    {
        return mysql_real_escape_string(strip_tags(trim($value)), $link);
    }
}

Und hier ist der Code, der es nennen würde:

//This stops SQL Injection in POST vars
foreach ($_POST as $key => $value)
{
    $_POST[$key] = cleanInput($value, $link);
}

//This stops SQL Injection in GET vars
foreach ($_GET as $key => $value)
{
    $_GET[$key] = cleanInput($value, $link);
}

Für mich scheint das zu funktionieren. Aus irgendeinem Grund werden jedoch keine Arrays von einigen Kontrollkästchen in einem Formular zurückgegeben. Sie kommen immer wieder leer heraus.

Ich habe meinen Code ohne die obige Funktion getestet und er funktioniert einwandfrei. Ich möchte nur ein bisschen mehr Sicherheit.

Vielen Dank!

Antworten auf die Frage(5)

Ihre Antwort auf die Frage