Sto cercando di trovare un modo per pulire efficacemente tutte le variabili POST e GET con una singola funzione. Ecco la funzione stessa:
//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);
}
}
Ed ecco il codice che chiamano:
//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);
}
A me questo sembra come dovrebbe funzionare. Ma per qualche motivo non restituirà gli array da alcune checkbox che ho in una forma. Continuano a uscire in bianco.
Ho testato il mio codice senza la funzione precedente e funziona bene, voglio solo aggiungere un po 'di sicurezza.
Grazie!
Evitare di cercare di disinfettare tutto per ogni contesto. Questo ostacola solo la tua applicazione e rende più difficile proteggere quando vuoi ricreare funzionalità perse. Questo è un valido motivo per cui magic_quotes è stato disabilitato. http://php.net/manual/en/security.magicquotes.php Qualcosa che stai ricreando in un certo senso qui. L'input deve essere disinfettato per l'applicazione a cui viene inviato. Se si sta inviando al browser tramite HTTP, disinfettarlo per HTTP e HTML. Se lo stai inviando al DB SQL, disinfettalo per SQL. – bucabay
scusate, volevo dire deprecato: http://php.net/manual/en/security.magicquotes.php – bucabay
Grazie per l'aiuto/consigli tutti! Sembra che ho bisogno di ripensare al mio processo. :-) – tscully