Ciao a tutti,
stavo inserendo la funzione session_regenerate_id() nel mio codice per evitare attacchi di tipo session fixation . solo che non capisco il suo funzionamento (O meglio..non funziona!)
Allora, io ho una pagina index.php dove è presente il mio form classico di login e password.
index.php
Codice PHP:
<?
session_start();
echo "
A-".session_id();
session_regenerate_id();
echo "
B-".session_id();
?>
<html>
<head>
.........
QUesta pagina invierà in $_POST Login e Password alla pagina verifica.php e se i dati sono corretti, scrive nella sessione alcuni parametri di autentificazione.
verifica.php
Codice PHP:
<?
session_start();
# codice estrazione DB Dati...poi la verifica..
if($_POST["login"]==$Row["login"] & $_POST["password"]==$Row["password"])
{
$_SESSION["ok"]=1;
}
echo "SSID=".session_id();
?>
<html>
<head>
.........
Quello che ho notato è questo, la pagina index avvia la sessione, poi dovrebbe rigenerare l'id di sessione e far lavorare su quella, invece se stampo la sessione id di lavoro della pagina seguente, scopro che non usa quella rigenerata!:
index.php
A-873ae7895449061138d0106d8b54e82e
B-f6f6e0dd355a6efab6bdd8af230f279d
verifica.php
SSID=873ae7895449061138d0106d8b54e82e
che senso ha rienerare la id se poi i dati si scrivono sempre nella stessa session_id?