Vorrei porvi un questio riguardante la sicurezza. Ho cercato in rete e anche su manuali ma purtroppo non mi è del tutto chiara una cosa. Veniamo al punto:
Tramite form ricevo alcune variabili che dovro poi inserire in una tabella del db. Naturalmente effettuo tutti i controlli con php e in caso di errore ( i classici errori di sintassi o caratteri) stampo a video un messaggio specificando il tipo di errore, ad esempio password troppo corta o lunga, parole proibite ecc ecc. Non essendo pochi i msg di errore possibili e non essendo poche le varibili e volendo a tutti i costi stampare a video il msg relativo al tipo di errore ho strutturato la cosa cosi:
Arrivano i dati del form e setto una variabile $errore=0, via via che analizzo le varie varibili arrivate dal form se capita un errore cambio il valore di $errore, ad esempio se il captcha è errato $errore=1 se $nome contiene una parola proibita $errore=2 ecc ecc Se invece va tutto bene la variabile $errore rimane a 0.
Dopodiche faccio:
if ($errore>0) {print "<h1>errore</h1>\n";
switch($errore)
{
case 1:
print "
nome troppo corto</p>\n"; break;
case 2:
print "
parola proibita nel nome</p>\n"; break;
case 3:
print "
passwor troppo corta</p>\n"; break;
}
unset($username); unset($password);
}
else
{$query="INSERT INTO bla bla bla";ecc ecc}
Quindi in caso di errore stampo il messaggio, Cancello le variabili, ma NON ho messo il EXIT; questo perchè altrimenti il codice si ferma li e non mi legge il resto del body della pagina, infatti questi messaggi di errore appaiono nel lato <div id=content> ma poi ho un <div id=latodx> con i menu e ovviamente un <div id=footer> alla fine della pagina che VOGLIO siano visualizzati anche in caso di messaggio di errore. Quindi per il mio scopo ritengo questa struttura valida, ma lo è veramente???
e poi... caso di sql_injection (si scrive cosi?) rischio qualcosa utilizzando questo sistema????? Scontato che ho anche i vari controlli htmlentities ecc ecc ecc
graize per i consigli![]()