Salve, ho trovato, dopo aver letto la guida sulla sicurezza in PHP, in rete questo script per inizializzare una session sicura. Solo che non riesco a capire il significato di alcuni passaggi.
Codice PHP:
function sec_session_start() {
$session_name = 'sec_session_id'; // Imposta un nome di sessione. Ma di quale? Di una nuova che voglio creare o cambia il nome della SID?
$secure = false; // Questo serve se hai una SSL. Utilizzato dopo.
$httponly = true; // Impedisce ad un JS di avere il mio SID, credo. Utilizzato dopo.
ini_set('session.use_only_cookies', 1); // Per evitare di impostare SSID tramite GET PHPSESSID
$cookieParams = session_get_cookie_params(VOID); // PHP.net: "restituisce un con le informazioni sul cookie di sessione corrente". Ma di quale session? Se io ne avessi più di una? O Cerca nel php.ini le impostazioni dei cookie?
session_set_cookie_params(
$cookieParams["lifetime"],
$cookieParams["path"],
$cookieParams["domain"],
$secure,
$httponly
); // Imposta queste opzioni alla sessione (che è un cookie) che sto creando
session_name($session_name); // Imposta il nome
session_start(); // Avvia la sessione php.
session_regenerate_id(); // Rigenera la sessione e cancella quella creata in precedenza.
}
Ho espresso accanto i miei dubbi. Se ho capito bene, questa funzione serve solo per inizializzare una session ID più sicura, poi il resto delle sessioni le inizializzi allo stesso modo nelle altre pagine con
Codice PHP:
session_start();
$_SESSION['prova'] = "prova";
Giusto? Quindi basterebbe richiamare questa funzione giusto nel login quando si è certi di aver autenticato l'utente e tutte le sessioni successive saranno più sicure?
Grazie mille!
Grazie a tutti.