Supponiamo di avere questo codice per l'autenticazione.
$me = mysql_query("SELECT * from users WHERE id='$_COOKIE[userid]' && password ='$_COOKIE[pass]'") or die (mysql_error());
$me = mysql_fetch_array($me);
Per autenticare un utente su un sito web, qualcosa sul computer dell'utente deve corrispondere a ciò che si trova sul server (questa domanda non riguarda la prevenzione del furto dei cookie poiché tutti i siti possono essere rubati a prescindere), ma c'è un modo per usare sql dove controllare se si trova nel database senza che sia soggetto a un attacco di temporizzazione?
Cosa succede se qualcuno modifica i propri cookie su un ID utente e una password diversi per cercare di scoprire la password di qualcun altro utilizzando un attacco di temporizzazione? Se $me
produce 0 risultati invece di 1 risultato, cambia il tempo medio necessario per eseguire la query?
Se sì, come dovrei cambiare il mio codice, perché non riesco a capirlo? Dovrei aggiungere un ritardo casuale al codice sopra, e fa una differenza mentre leggo non lo farebbe.