Ragazzi devo controllare una variabile passata tramite url $_GET e devo verificare se ci sono determinati caratteri come ad esempio (/,%,",!,£,$) quale funzione posso usare?
Ragazzi devo controllare una variabile passata tramite url $_GET e devo verificare se ci sono determinati caratteri come ad esempio (/,%,",!,£,$) quale funzione posso usare?
ciao, ti consiglio nel tuo caso l'uso della funzione preg_match![]()
Quindi nel mio caso come devo proseguire?
Nel tuo caso sarebbe così
Codice PHP:
$chrs = "/'_£$%&()=?^!]-";
if (preg_match('/['.preg_quote($chrs,'/').']/',$string))
echo 'trovati caratteri non ammessi: '.$chrs;
![]()
quindi preg_match controlla se ci sono i caratteri stabiliti nel pattern nella stringa?
esatto, però ovviamente non controlla nè il numero di occorrenze nè se più di un carattere "speciale" è presente nella stringa, è solo un indicazione della presenza di almeno uno nella stringa passata.
ah kmq un altra cosa utilizzando questa funzione quindi posso evitare gli attacchi SQL e XSS?
beh si certo, puoi evitare, se ad esempio utilizzi questa funzione per un'autenticazione, che ti scrivino stringhe in grado di aggirare il controllo che fai tramite query sulla vera esistenza di user e password.
io uso sempre mysql_real_escape_string per l'autentificazione