ho fatto per la prima volta un accesso ad un'area riservata in cui l'autenticazione avviene solo tramite un campo, di solito l'ho sempre fatta con password e nome utente e non ho mai avuto problemi di sicurezza, ma mi è stato chiesto di fare un accesso solo tramite codice, solo he ho riscontrato un piccolo problemino con la sicurezza
non posso fare l'accesso tramite htacces, quindi l'ho dovuto fare con uno script ma ho questo problema; il campo lo recupero da un form e faccio:
e questa è la query con cui recupero i dati [ho fatto un controllo che la stringa non sia il semplice carattere %]codice:$codice = strip_tags(stripslashes(trim($_POST['codice'])));
apparentemente mi sembrava perfetta ma poi ho voluto fare una prova, ricordandomi di un corso che avevo fatto tempo fa, e ho inserito nel campo codice questa stringa: %' OR 'a' = 'a e magicamente entra nell'area amministrativa, in quanto la query mi diventerebbe:codice:$sql = "SELECT * FROM `alert` WHERE `codice` LIKE '".$codice."'";
ecco ora la domanda? come lo risolvo il mio problema? [penso sia una cavolata ma non mi viene in mente al momentocodice:SELECT * FROM `alert` WHERE `email` LIKE '%' OR 'a' = 'a']
seconda domanda...c'è un tutorial che spieghi come proteggersi e che controlli fare sulle variabili al fine di evitare attacchi non voluti?
p.s. ho scritto soprattutto per la seconda domanda e per sapere se qualcuno adotta particolari accorgimenti quando deve creare un accesso protetto da password! per il primo problema penso che se mi guardo ancora il manuale riesco a risolvere...è che non mi ricordo il nome della funzione che controlla se c'è una determinata stringa all'interno di un'altra e non so che chiave di ricerca usare![]()