Salve a tutti, sto rendendo più sicuro il mio file di login per prevenire la session hijacking.
Ecco come l'ho modificato:
verifica-login.php
codice:
/* Username e password corrette */
if($trovato === 1) {
$randlen = 32;
$randval = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$random = "";
for ($i = 1; $i <= $randlen; $i++) {
$random .= substr($randval, rand(0,(strlen($randval) - 1)), 1);
}
/*Registro la sessione*/
session_register('autorizzato');
$_SESSION["autorizzato"] = 1;
/*Registro il codice dell'utente*/
$_SESSION['cod'] = $random;
/*Redirect alla pagina riservata*/
Mentre nel file da "proteggere" rigenero la sessione a ogni refresh:
codice:
session_start();
if (!session_is_registered('autorizzato')) {
echo "<h1>Area riservata, accesso negato.</h1>";
echo "Per effettuare il login clicca <font color='blue'>qui</font>";
die;
}
/*Prelevo il codice identificatico dell'utente loggato*/
session_start();
session_regenerate_id(true);
In questo modo l'identificativo utente è random a ogni accesso. E dentro le pagine da proteggere la SESSION ID è casuale a ogni refresh/spostamento nell'area riservata.
Che ne pensate? E' sicuro?