Mantengo la mia semplice sessione di autenticazione PHP abbastanza sicura?

1

Sto sperimentando con sicurezza, crittografia e applicazioni web. Il mio obiettivo è creare un semplice sistema di accesso che sia sufficientemente sicuro . Mi piacerebbe condividere il mio approccio per mantenere la sessione autenticata con te per ottenere alcuni commenti.

Il mio approccio:

Quando l'utente effettua l'accesso (utilizzo BCrypt e password_verify):

session_regenerate_id(TRUE);
$_SESSION['session_token'] = mcrypt_create_iv(16, MCRYPT_DEV_URANDOM);
$app->setCookie('auth', hash_hmac("sha256", $_SESSION['session_token'].$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'], SESSION_SECRET));
$app->redirect($app->urlFor('index'));

Tutti i cookie sono crittografati con MCRYPT_RIJNDAEL_192 in modalità CBC (il framework Slim si prende cura di esso).

Quindi, ad ogni richiesta, eseguo quegli assegni:

    $token = $app->getCookie('auth');
    if(!$token
        || !isset($_SESSION['session_token'])
        || hash_hmac("sha256", $_SESSION['session_token'].$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'], SESSION_SECRET) !== $token
    ) {
         // user not logged in
    }

SESSION_SECRET è la mia stringa const const definita.

Ed ecco la mia funzione di disconnessione:

$app->deleteCookie('auth');
session_destroy();
session_unset();
session_start();
session_regenerate_id(TRUE);

È abbastanza sicuro in materia di mantenere l'accesso dell'utente?

    
posta Dave 27.03.2014 - 01:41
fonte

0 risposte

Leggi altre domande sui tag