Volendo puoi usare anche i cookie, ma senza salvare al loro interno la password, ma assegnando all'utente una stringa casuale come password provvisoria, che magari scada dopo mezz'ora che l'utente non compie azioni, semplicemente impostando ad ogni caricamento do pagina il controllo, confrontando il cookie con una sessione in cui è salvata la password provvisoria e se questo viene passato con successo, posticipare la scadenza del cookie stesso. Ovviamente è da settare anche una scadenza per la sessione. Per aumentare la sicurezza se vuoi puoi anche controllare l'ip del client. Lo puoi ottenere con questo codice:
Codice PHP:
<?php
$ip=$_SERVER['REMOTE_ADDR'];
?>
Per generare la stinga casuale ho un codice che avevo creato per un sito fatto da me:
Codice PHP:
<?php
//Stringa di origine (caratteri che potranno essere usati)
$src='0123456789abcdefghijklmnopqrstuvwxyz';
//Lunghezza massima della stringa di output
$max_out_length=128;
//Nota: per una stringa a lunghezza fissa, inserire il valore massimo uguale al minimo
//Lunghezza minima della stringa di output
$min_out_length=32;
function random_text($src,$max_out_length,$min_out_length){
$src_length=strlen($src);
if(!isset($src) || $src==null || $src==''){
echo('Campo caratteri utilizzabili vuoto.');
exit();
}
if($min_out_length>$max_out_length || !is_int($min_out_length) || !is_int($max_out_length) || $min_out_length<=0 || $max_out_length<=0){
echo('Errore. Valori lunghezza stringa massimo e minimo non validi.');
exit();
}
for($iter1=0;$iter1<=$src_length;++$iter1){
$chars[]=substr($src,$iter1,1);
}
$out='';
$out_length=rand($min_out_length,$max_out_length);
for($iter2=0;$iter2<$out_length;++$iter2){
$rand=rand(0,$src_length-1);
$rand_char=$chars[$rand];
$out="$out$rand_char";
}
return($out);
}
echo(random_text($src,$max_out_length,$min_out_length));
?>
Certo la sicurezza non è enorme, anche se migliore di quella che si ottiene salvando nei cookie la password... un eventuale hacker deve mirare proprio ad un determinato account per poterla superare... soprattutto se controlli anche l'ip
Se invece vuoi un sistema davvero molto sicuro devi pensare ad un protocollo crittografato.
Spero di esserti stato d'aiuto,
Ciao