- Home
- Categorie
- Coding e Sistemistica
- PHP
- Creare un login sicuro
-
Creare un login sicuro
Salve, sto realizzando un piccolo progetto, e adesso mi servirebbe creare un area privata per ogni utente, ho gia creato un semplice login, ma vorrei creare qualcosa di più efficace e sopratutto sicuro. Potete darmi qualche consiglio, o magari qualche script da utilizzare?
Grazie mille.
-
Ho l'impressione che ci sia qualcosa di già pronto qui: giorgiotave.it/forum/scripting-e-risorse-utili/83033-tutorial-area-privata.html
-
Ciao, si ho gia visto e utilizzato in passato quello script, ma secondo te e ancora attuale anche se fatto nel 2009?
-
Sì. Al limite per scrupolo cercherei se fossero presenti funzioni deprecate e le avrei aggiornate dopo aver studiato le sintassi.
Buon lavoro.
-
Una sola modifica per la password. Usare il MD5 non è abbastanza sicuro, ormai ci sono database completi di md5 reversing e bruteforcing che possono penetrare nel tuo sito senza grandi problemi, e per l stesso motivo eviterei lo SHA.
Una soluzione che ho trovato è l'uso di hash, e non di password. Faccio un esempio:
[PHP] $salt = openssl_random_pseudo_bytes(22); $salt = '$2a$%13$' . strtr($salt, array('_' => '.', '~' => '/')); $password_hash = crypt($password, $salt);[/PHP]
Dando una variabile $password a questo piccolo script, ti crea una hash per quella password, che trovi alla variabile $password_hash.
Salva questa nel database, e non l'originale password.Poi, al login fai:
[PHP]if(crypt($_POST['password'], $hash) === $hash)
{
//... esegui qui le azioni
}[/PHP]
con $_POST['password'] = la password che ha inserito nel form e $hash = la hash che avevi salvato nel database quando si era registrato.
In questo modo, la sicurezza (sebbene non si possa avere mai al 100%) è più alta che con metodi di MD5 o SHA vari.Ciao!
-
Ok grazie mille, per il prezioso consiglio, adesso cerco di implementarlo nel mio script, se ho problemi ti faccio qualche domanda