Sto sviluppando un file che ospita e condividi un'applicazione web.
Le seguenti impostazioni della sessione PHP sono sufficientemente sicure?
ini_set('session.cookie_httponly', 1);
ini_set('session.cookie_lifetime', 0);
ini_set('session.entropy_file', '/dev/urandom');
ini_set('session.hash_function', 'whirlpool'); //is whirlpool that necessary?
ini_set('session.use_only_cookies', 1);
ini_set('session.hash_bits_per_character', 5);
ini_set('session.cookie_secure', 1);
session_name('sid');
session_start();
if (!isset($_COOKIE['sid'])) {
$_SESSION['token'] = CryptoCharGen::alnum(); //20 chars
}
Per aggiungere alla sicurezza:
- Legare un token CSRF crittograficamente strong all'utente sessione per la convalida del modulo.
- Rigenerazione di un nuovo ID di sessione al momento dell'accesso e della disconnessione e distruzione della vecchia sessione.
- Rigenerazione di un nuovo token CSRF dopo aver inviato con successo qualsiasi modulo.
Ho letto per rinominare il nome di sessione PHP predefinito, quindi l'ho chiamato sid
. È abbastanza buono?
Dovrei generare l'ID di sessione con il mio generatore? (CryptoCharGen)
Dovrei preoccuparmi di come nomino le mie variabili di sessione?