beh tem per il discorso degli escape io utilizzo altro sistema
diciamo che ho creato una piccola libreria di funzioni che mi lavora sulla validazione degli input...e sono funzioni diverse a secondo degli array superglobali che tratto
per i post ad esempio utilizzo l'insieme di tre funzioni
in effetti oltre a controllare il magic_quotes_gpc controllo anche
il magic_quotes_runtime ed invece dell'addslashes per l'escape nel db
utilizzo l'escape di mysql mysql_escape_string()
quindi
- una funzione x ricevere i valori da post
- una funzione per inviare invio a db
- una funzione per ricevere da db dopo query
Code:
//ricevo da post
////////////////////////////////////////////////////////////////////////////////
function ricevoPost($str)
{
$str=strip_tags($str);
if(get_magic_quotes_gpc()){$str=stripslashes($str);}
$str=nl2br($str);
return $str;
}
////////////////////////////////////////////////////////////////////////////////
//insert db
////////////////////////////////////////////////////////////////////////////////
function invioDb($str)
{
$str=mysql_escape_string($str);
return $str;
}
////////////////////////////////////////////////////////////////////////////////
//da db
////////////////////////////////////////////////////////////////////////////////
function ricevoDb($str)
{
if(get_magic_quotes_runtime())
{
$str=stripslashes($str);
}
return $str;
}
un esempio con un po di codice del mio metodo
innanzitutto creo degli array per dividere i dati filtrati (ripuliti)
e quello escape (pronti per l'invio al db),
in tal modo nella mia applicazione so sempre con quali dati sto lavorando
(dopo un piccolo studio su php sicurezza ho visto che è tra i metodi piu utilizzati ;-) )
quindi immaginando di passare un valore da form dal campo mio_campo :
Code:
//creazione array
$clean=array(); //array dati filtrati
$html=array(); //array dati escape
//ricevo da form
$mio_camporicevoPost($_POST['mio_campo'])
//effettuo poi i soliti controlli
//(campi non vuoti o corrispond. ad una maschera di input)
//metto i dati negli array
$clean['mio_campo']=$mio_campo; //array di dati ripuluti
$html['mio_campo']=invioDb($clean['mio_campo']);//array di dati pronti per il db
$html['mio_campo'] //variabile (o meglio valore dell'array associativo)
ripulito che uso per inviare a db
///////////////////////////////////////
//nel momento in cui ho bisogno di ricevere il dato dal db invece
//.....
$mio_campo=ricevoDb($row['mio_campo']);
//.....
ciao ciao e buon lavoro