Le impostazioni della mia sessione sono abbastanza sicure?

7

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?

    
posta Kid Diamond 10.05.2014 - 11:08
fonte

2 risposte

6

Puoi anche aggiungere session.entropy_length = 512 e session.use_trans_sid = 0 .

Inoltre, non dimenticare di

  1. usa https
  2. rigenera id di sessione se modifichi le autorizzazioni degli utenti.
  3. scadono le sessioni. Il tempo dipende dalla tua app.

Non ha nulla a che fare con la sicurezza, ma perché non cambiare session.hash_bits_per_character a 6. Più grande è il numero, più breve è la stringa inviata da e al server.

    
risposta data 11.05.2014 - 13:51
fonte
1

Ecco alcuni passaggi aggiuntivi che possono rendere sicura la sessione.

  1. Limita la validità della sessione per il breve tempo accettato
  2. Invia sempre gli ID di sessione su SSL / TLS
  3. Non inviare mai ID di sessione sugli URL (usa post metodo)
  4. Crea token CSRF forti e assicurati che i token CSRF siano convalidati.

Puoi trovare ulteriori informazioni su

risposta data 10.05.2014 - 22:54
fonte

Leggi altre domande sui tag